2017-05-31 4 views
0

Ist es möglich, senden Sie die wsdl Anfrage Körper in aktiven mq mit Kamel-Route. Wenn ja, wer kann ich erreichen dies unten ist meine Beispiel-Code, in dem ich versuche, die WSDL Anfrage Körper in einer Warteschlange senden, aber es ist nicht passiert.Wie wsdl Anfrage Körper in activemq mit Kamel Route senden

<route id="report"> 
      <from id="_from2" uri="direct:reportIncident"/> 
      <to id="_to3" uri="activemq:queue:in.incident.report"/> 
      <process id="_process1" ref="reportIncidentProcessor"/> 
      <to id="_to1" uri="log:output"/> 
     </route> 

Ich habe unter Ausnahme in meiner fuse.log Datei

org.apache.camel.ExchangeTimedOutException: The OUT message was not received within: 20000 millis due reply message with correlationID: Camel-ID-NISB-TEC-C3880-54427-1496206891706-5-5 not received on destination: temp-queue://ID:NISB-TEC-C3880-54424-1496206882676-7:1:1. Exchange[ID-TEC-1496206891706-5-4] 
    at org.apache.camel.component.jms.reply.ReplyManagerSupport.processReply(ReplyManagerSupport.java:153)[246:org.apache.camel.camel-jms:2.17.0.redhat-630077] 
    at org.apache.camel.component.jms.reply.TemporaryQueueReplyHandler.onTimeout(TemporaryQueueReplyHandler.java:62)[246:org.apache.camel.camel-jms:2.17.0.redhat-630077] 
+0

Die Nachricht wird an AMQ gesendet, aber niemand am anderen Ende verbraucht es und sendet die Antwort mit hin 20 Sekunden. Wenn Sie nicht möchten, dass die Kommunikation Anfrage-Antwort ist, müssen Sie das Austauschmuster entsprechend festlegen oder [Endpunkt konfigurieren] (http://camel.apache.org/jms.html). – Ralf

Antwort

1

Ein Web-Service-Aufruf wird INOUT- standardmäßig aktiviert und wenn Sie den ActiveMQ senden vermittelt, dass die gleiche Art, so dass es eine Antwort erwarten Nachricht, die Sie nicht bekommen und deshalb sehen Sie diese Ausnahme.

Wenn Sie also eine InOnly senden möchten (Feuer und vergessen) Botschaft an die ActiveMQ, dann müssen Sie angeben, dass

<to id="_to3" uri="activemq:queue:in.incident.report"/> 

sein sollte

<to id="_to3" pattern="InOnly" uri="activemq:queue:in.incident.report"/> 

Mehr unter: - http://camel.apache.org/event-message.html - http://camel.apache.org/request-reply.html

+0

danke viel @Claus es hat funktioniert. aber wer kann ich die wsdl anfrage body/parameter in camel route n senden sie in einer warteschlange. Abrufen dieser Ausnahme Verursacht von: javax.jms.JMSException: Erstellung des Textkörpers aus dem Inhalt fehlgeschlagen. Serialisierbare Klasse nicht zum Broker verfügbar. Grund: java.lang.ClassNotFoundException: Verbotene Klasse org.apache.cxf.message.MessageContentsList! Von dieser Klasse wird nicht erwartet, dass sie als ObjectMessage-Nutzlast serialisiert wird. Weitere Informationen zum Konfigurieren vertrauenswürdiger Klassen finden Sie unter http://activemq.apache.org/objectmessage.html –

+0

Sie müssen die Nachricht in einen Typ konvertieren, den Sie über JMS senden können, z. B. String oder byte [] Senden - siehe 'convertBodyTo' –

Verwandte Themen