Visualizzazione degli endpoint utilizzando IBM Integration API

È possibile visualizzare gli endpoint di un flusso di messaggi distribuito nell ' IBM® App Connect Enterprise Toolkit utilizzando l'API di integrazione dell' IBM.

Prima di iniziare

  1. Creare e avviare un server di integrazione e impostare il valore della porta di amministrazione su 7600 come descritto in Creazione, avvio e arresto di un server di integrazione locale indipendente utilizzando il Toolkit.
  2. È necessario distribuire un'applicazione che utilizza il trasporto HTTP o SOAP. Ad esempio, è possibile importare ed eseguire l'esercitazione Using an HTTP input to drive a message flow completando i seguenti passaggi:
    1. Nel Toolkit di IBM App Connect Enterprise, apri la Galleria dei tutorial, cerca " HTTP " e seleziona "Utilizzo di un input di HTTP per gestire un flusso di messaggi ".
    2. Importare ed eseguire l'esercitazione completando le istruzioni dell'esercitazione.

    Per ulteriori informazioni, consulta la sezione Tutorial di IBM App Connect Enterprise.

    .
  3. Verificare che il servizio HTTPInputApplication sia in esecuzione sul proprio Integration Server visualizzandone il contenuto nella vista Integration Explorer dell' IBM App Connect Enterprise Toolkit oppure utilizzando l'interfaccia utente web di IBM App Connect Enterprise, come descritto nella sezione "Accesso all'interfaccia utente web".

Informazioni su questa attività

Per utilizzare questa funzione è necessario installare IBM App Connect Enterprise 12.0.8.0 o una versione successiva.

Procedura

  1. Creare un progetto Java™ seguendo la procedura descritta in Configurazione dell'ambiente Eclipse per eseguire le applicazioni di integrazione personalizzate.
  2. Aggiungi il seguente codice a una classe chiamata RetrieveEndpointsExample nel tuo progetto Java:
    
    package com.ibm.integration.admin;
    
    import java.io.IOException;
    
    import com.ibm.integration.admin.http.HttpClient;
    import com.ibm.integration.admin.http.HttpResponse;
    import com.ibm.integration.admin.model.MessageFlowModel;
    import com.ibm.integration.admin.model.flow.MessageFlowActive;
    import com.ibm.integration.admin.model.rm.EndpointResourceManager;
    import com.ibm.integration.admin.model.rm.EndpointResourceManagerActive;
    import com.ibm.integration.admin.model.rm.EndpointResourceManagerEndpoint;
    import com.ibm.integration.admin.proxy.ApplicationProxy;
    import com.ibm.integration.admin.proxy.IntegrationAdminException;
    import com.ibm.integration.admin.proxy.IntegrationServerProxy;
    import com.ibm.integration.admin.proxy.MessageFlowProxy;
    
    public class RetrieveEndpointsExample {
    
        public static void main(String[] args)  {
    
            try {
    
            	IntegrationServerProxy myServer = new  IntegrationServerProxy("localHost",7600,"","",false);
                
                String myAppName = "HTTPInputApplication";
                ApplicationProxy myApp = myServer.getApplicationByName(myAppName, true);
    
                if (myApp != null)
                {    
    
                    String messageFlowName = "HTTPInputMessageFlow";
    
                    MessageFlowProxy myFlow = myApp.getMessageFlowByName(messageFlowName, null, true);
                    MessageFlowModel flowModel = myFlow.getMessageFlowModel(true);
                    MessageFlowActive messageFlowActive = flowModel.getActive();
    
                    String endpointsUri = messageFlowActive.getEndpointsUri();
    
                    try 
                    {
    
                        HttpClient httpClient = new HttpClient("localHost",7600, null, null, false);
                        HttpResponse httpResponse = httpClient.getMethod(endpointsUri, false);    
    
                        EndpointResourceManager endpointResourceManager = httpResponse.parseResponseBody(EndpointResourceManager.class);
                        EndpointResourceManagerActive endpointResourceManagerActive = endpointResourceManager.getActive();
                        EndpointResourceManagerEndpoint[] endpoints = endpointResourceManagerActive.getEndpoints();
    
                        for (int i = 0; i < endpoints.length; i++) 
                        {
                            String[] sourceURIs = endpoints[i].getSourceURIs();
                            for (int uriIndex = 0; uriIndex < sourceURIs.length; uriIndex++) 
                            {
                                System.out.println("Endpoint Location = " + endpoints[i].getEndpointLocation());
                                System.out.println("Endpoint Transport = " + endpoints[i].getTransport());
                                System.out.println("Endpoint Direction = " + endpoints[i].getDirection());
                                System.out.println("Source URI = " + sourceURIs[uriIndex]);
                            }
                        }
    
                    }
                    catch (IOException | InterruptedException e) 
                    {
                        e.printStackTrace();
                    }
    
                }
    
            } catch (IntegrationAdminException e) {
                e.printStackTrace();
            } 
    
        }
    
    }
    
  3. Eseguire la classe facendo clic con il tasto destro del mouse e selezionando Esegui come → Applicazione Java.

    Il seguente output viene visualizzato nella finestra Console Eclipse :

    
    Endpoint Location = http://hostname:7800/HTTPInputMessageFlow
    
    Endpoint Transport = HTTP
    
    Endpoint Direction = Input
    
    Source URI = /apiv2/applications/HTTPInputApplication/messageflows/HTTPInputMessageFlow/nodes/HTTP%20Input