Questo argomento contiene le seguenti sezioni:
Utilizzare il nodo HTTPInput per ricevere le richieste del servizio Web per l'elaborazione da parte di un flusso di messaggi. Utilizzando il nodo HTTPInput con i nodi HTTPReply e HTTPRequest, il broker può agire come intermediario per i servizi Web e le richieste del servizio Web possono essere trasformate ed instradate allo stesso modo di altri formati del messaggio supportati da WebSphere Message Broker. Le richieste del servizio Web si possono ricevere in formato HTTP standard (1.0 o 1.1) e anche in formato HTTPS (HTTP over SSL). E' possibile impostare la proprietà Utilizza HTTPS per scegliere se gestire richieste HTTP o HTTPS.
Se, in un flusso di messaggi, si include un nodo HTTPInput, è necessario includere un nodo HTTPReply nello stesso flusso o trasmettere il messaggio ad un altro flusso che includa un nodo HTTPReply (ad esempio, attraverso un nodo MQOutput ad un secondo flusso che inizia con un nodo MQInput). Nel secondo caso, la richiesta dal e la replica al client sono coordinate dall'identificativo della richiesta memorizzato in LocalEnvironment (descritto di seguito).
Il nodo HTTPInput gestisce i messaggi nei seguenti domini di messaggi:
Quando il nodo HTTPInput riceve un messaggio da un client del servizio Web, esso richiama i programmi di analisi appropriati per interpretare le intestazioni e il contenuto del messaggio e per creare la struttura ad albero del messaggio utilizzata internamente dal flusso di messaggi. Il nodo crea un identificativo univoco per il messaggio di input e lo memorizza come array binario di 24 byte nella struttura ad albero LocalEnvironment su LocalEnvironment.Destination.HTTP.RequestIdentifer. Questo valore è utilizzato dal nodo HTTPReply e non deve essere modificato in alcun modo.
I messaggi HTTP sono sempre non permanenti e non hanno un ordine associato.
I messaggi HTTP sono non transazionali. Tuttavia, se il flusso di messaggi interagisce con un database o con un'altra risorsa esterna come una coda WebSphere MQ, queste interazioni vengono eseguite in modo transazionale. Il nodo HTTPInput effettua il commit o il rollback a seconda di come è terminato il flusso di messaggi e di come è configurato per la gestione degli errori (come sono connessi i terminali failure, ad esempio). Se il flusso di messaggi è sottoposto a rollback da questo nodo, un messaggio di errore viene generato e restituito al client. Il formato dell'errore è definito dalla proprietà Formato errore
Se si verifica un'eccezione nella successiva elaborazione di questo flusso di messaggi e non è rilevata ma viene restituita a questo nodo, il nodo crea una replica di errore al client. Questo errore è derivato dall'eccezione e il formato dell'errore è definito dalla proprietà Formato errore.
Se si include un nodo di output in un flusso di messaggi che inizia con un nodo HTTPInput, questo può essere un qualunque nodo di output supportato (compresi i nodi di output definiti dall'utente). E' possibile creare un flusso di messaggi che riceve i messaggi dai client del servizio Web e genera messaggi per i client che utilizzano tutti i trasporti supportati per la connessione al broker, perché si può configurare il flusso di messaggi per richiedere al broker di fornire tutte le conversioni necessarie.
Se si crea un flusso di messaggi da utilizzare come un flusso secondario, non è possibile utilizzare un nodo di input standard; è necessario utilizzare un'istanza del nodo Input come primo nodo per creare un terminale in per il flusso secondario.
Se il flusso di messaggi non riceve richieste del servizio Web, è possibile scegliere uno dei nodi di input supportati.
Il nodo HTTPInput è rappresentato nel workbench dalla seguente icona:
Il nodo HTTPInput può essere utilizzato da qualsiasi flusso di messaggi per il quale sia necessario accettare i messaggi HTTP o HTTPS. L'esempio più comune è un flusso di messaggi che implementa un servizio Web. Per informazioni sulle applicazioni del servizio Web, consultare Applicazioni del servizio Web.
Una volta inserita un'istanza del nodo HTTPInput in un flusso di messaggi, è possibile configurarla. Fare clic con il tasto destro del mouse sul nodo nella vista dell'editor e fare clic su Proprietà. Le proprietà base del nodo vengono visualizzate nella finestra di dialogo delle proprietà.
Tutte le proprietà obbligatorie, per le quali è necessario immettere un valore (quelle per le quali non è specificato un valore predefinito), sono contrassegnate con un asterisco nella finestra di dialogo delle proprietà.
Configurare il nodo HTTPInput come segue:
Lasciare il campo Serie di messaggi vuoto per i programmi di analisi XML, XMLNS, XMLNSC, JMS, MIME e BLOB.
Lasciare il campo Tipo messaggio vuoto per i programmi di analisi XML, XMLNS, XMLNSC, JMS, IDOC, MIME e BLOB.
Lasciare il campo Formato del messaggio vuoto per i programmi di analisi XML, XMLNS, XMLNSC, JMS, MIME e BLOB.
Per ulteriori dettagli fare riferimento a Convalida dei messaggi e Proprietà della convalida per i messaggi nel dominio MRM.
Fare clic su Annulla per chiudere la finestra di dialogo ed eliminare tutte le modifiche apportate alle proprietà.
HTTPInput instrada ogni messaggio che richiama con esito positivo sul terminale out. Se la convalida del messaggio ha esito negativo, il messaggio è instradato al terminale failure; per gestire questa condizione si possono collegare dei nodi a questo terminale. Se il terminale failure non è stato connesso, il messaggio viene eliminato, il Tempo massimo di attesa client scade e il listener TCP/IP restituisce al client un errore. Non esistono altre situazioni in cui il messaggio è instradato al terminale failure.
Se il messaggio viene rilevato da questo nodo dopo che è stata generata un'eccezione nel successivo avanzamento del flusso di messaggi, il messaggio viene instradato al terminale catch. Se il terminale catch non è stato connesso, il messaggio è eliminato, il Tempo massimo di attesa client scade e il listener TCP/IP restituisce al client un errore.
I terminali del nodo HTTPInput sono descritti nella seguente tabella.
Terminale | Descrizione |
---|---|
Failure | Il terminale di output a cui è instradato il messaggio, se si verifica un errore. |
Out | Il terminale di output a cui è instradato il messaggio se è richiamato con esito positivo. |
Catch | Il terminale di output a cui è instradato il messaggio se viene generata un'eccezione nel proseguimento dell'elaborazione e questo nodo la rileva. |
Le seguenti tabelle descrivono le proprietà del nodo; la colonna con l'intestazione O indica se la proprietà è obbligatoria (contrassegnata con un asterisco nella finestra di dialogo delle proprietà, se è necessario immettere un valore quando non è specificato un valore predefinito), la colonna con l'intestazione C indica se la proprietà è configurabile (è possibile modificare il valore quando si aggiunge un flusso di messaggi a un file bar per distribuirlo).
Le proprietà base del nodo HTTPInput sono descritte nella seguente tabella.
Proprietà | O | C | Valore predefinito | Descrizione |
---|---|---|---|---|
Selettore URL | Sì | Sì | Identifica l'ubicazione da cui sono richiamate le richieste del servizio Web. Se l'URL è http://<hostname>[:<port>]/[<path>], specificare /<path> o /<path fragment>/* dove * rappresenta un carattere wildcard che è possibile utilizzare per indicare una corrispondenza completa. | |
Tempo di attesa massimo del client | Sì | No | 180 | Quanto tempo attende il listener, in secondi, prima di restituire un messaggio di errore al client. L'intervallo valido è da zero (che indica attesa indeterminata) a (231)-1. |
Formato errore | No | Sì | SOAP 1.1 | Il valore della proprietà può essere SOAP 1.1, SOAP 1.2 o HTML. Questa proprietà definisce il formato di tutti gli errori HTTP restituiti al client. |
Utilizza HTTPS | No | Sì | no | Individua se il nodo deve accettare HTTP protetto. |
Le proprietà predefinite del nodo HTTPInput sono descritte nella seguente tabella.
Proprietà | O | C | Valore predefinito | Descrizione |
---|---|---|---|---|
Dominio messaggi | No | No | Il dominio che sarà utilizzato per analizzare il messaggio in entrata. | |
Serie di messaggi | No | No | Il nome o identificativo della serie di messaggi in cui è definito il messaggio in entrata. | |
Tipo messaggio | No | No | Il nome del messaggio in entrata. | |
Formato del messaggio | No | No | Il nome del formato fisico del messaggio in entrata. |
Le proprietà Convalida del nodo HTTPInput sono descritte nella seguente tabella.
Fare riferimento a Proprietà della convalida per i messaggi nel dominio MRM per una descrizione completa di queste proprietà.
Proprietà | O | C | Valore predefinito | Descrizione |
---|---|---|---|---|
Convalida | No | Sì | Nessuno | Indica se viene effettuata la convalida. I valori validi sono Nessuno, Contenuto e valore e Contenuto. |
Azione in caso di errore | No | No | Eccezione | Indica cosa accade se la convalida ha esito negativo. E' possibile impostare questa proprietà solo se si imposta Convalida su Contenuto o Contenuto e valore. I valori validi sono Traccia utente, Registrazione errori locale, Eccezione ed Elenco di eccezioni. |
Includi tutti i vincoli valore | No | No | Selezionata | Questa proprietà non può essere modificata. L'azione predefinita, indicata dalla casella di spunta selezionata, è che i controlli del vincolo del valore base sono inclusi nella convalida Contenuto e valore. |
Correzione | No | No | Nessuno | Questa proprietà non può essere modificata. |
Le proprietà delle Opzioni generali messaggio per il nodo HTTPInput sono descritte nella seguente tabella.
Proprietà | O | C | Valore predefinito | Descrizione |
---|---|---|---|---|
Intervallo di analisi | No | No | Su richiesta | Questa proprietà consente di controllare quando viene analizzato un messaggio di input.
I valori validi sono Su richiesta, Immediata e Completa. Fare riferimento ad Analisi su richiesta per una descrizione completa di questa proprietà. |
Utilizza programma di analisi compatto MQRFH2C per il dominino MQRFH2 | No | No | Deselezionata | Questa proprietà consente di controllare se viene utilizzato il programma di analisi compatto MQRFH2C, invece del programma di analisi MQRFH2, per le intestazioni MQRFH2. |
Le proprietà delle Opzioni del programma di analisi XMLNSC per il nodo HTTPInput sono descritte nella seguente tabella.
Proprietà | O | C | Valore predefinito | Descrizione |
---|---|---|---|---|
Utilizza programma di analisi compatto XMLNSC per il dominio XMLNS | No | No | Deselezionata | ![]() ![]() |
Modalità di mantenimento contenuto misto | No | No | Nessuno | Questa proprietà controlla se il programma di analisi XMLNSC crea elementi nella struttura ad albero del messaggio quando rileva testo misto in un messaggio di input. I valori validi sono Nessuno e Tutti. La selezione del valore Tutti indica che gli elementi vengono creati per testo misto. La selezione del valore Nessuno indica che il testo misto viene ignorato e non viene creato alcun elemento. |
Modalità di mantenimento commenti | No | No | Nessuno | Questa proprietà controlla se il programma di analisi XMLNSC crea elementi nella struttura ad albero del messaggio quando rileva commenti in un messaggio di input. I valori validi sono Nessuno e Tutti. La selezione del valore Tutti indica che vengono creati elementi per i commenti. La selezione del valore Nessuno indica che i commenti vengono ignorati e non viene creato alcun elemento. |
Modalità di mantenimento delle istruzioni di elaborazione | No | No | Nessuno | Questa proprietà controlla se il programma di analisi XMLNSC crea elementi nella struttura ad albero del messaggio quando rileva istruzioni di elaborazione in un messaggio di input. I valori validi sono Nessuno e Tutti. La selezione del valore Tutti indica che vengono creati elementi per le istruzioni di elaborazione. La selezione del valore Nessuno indica che le istruzioni di elaborazione vengono ignorate e non viene creato alcun elemento. |
Le proprietà Descrizione del nodo HTTPInput sono descritte nella seguente tabella.
Proprietà | O | C | Valore predefinito | Descrizione |
---|---|---|---|---|
Descrizione breve | No | No | Una breve descrizione del nodo. | |
Descrizione completa | No | No | Testo che descrive lo scopo del nodo nel flusso di messaggi. |