No response message for RequestResponse mep
jbuechel Jan 11, 2011 8:24 AMHi all,
I'm trying to implement an ESB which:
- provides a webservice to system1
- consumes either a webservice from system2 or system3 (content based routing)
- sends back transformed response to system1
All works fine without the content based routing (i.e. targeting only system2) having the following jboss-esb.xml:
<?xml version="1.0"?> <jbossesb parameterReloadSecs="5" xmlns="http://anonsvn.labs.jboss.com/labs/jbossesb/trunk/product/etc/schemas/xml/jbossesb-1.2.0.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://anonsvn.labs.jboss.com/labs/jbossesb/trunk/product/etc/schemas/xml/jbossesb-1.2.0.xsd http://anonsvn.jboss.org/repos/labs/labs/jbossesb/trunk/product/etc/schemas/xml/jbossesb-1.2.0.xsd"> <providers> <jms-provider connection-factory="ConnectionFactory" name="JBossMQ"> <jms-bus busid="esbChannel"> <jms-message-filter dest-name="queue/quickstart_publish_as_webservice_Request_esb_4" dest-type="QUEUE" selector="serviceName='getEntityByKeyRequest'" /> </jms-bus> </jms-provider> </providers> <services> <service category="wsa-ncinv" description="Webservice Agent to proxy communication between System1 and System2" name="getObjectByKeyRequest"> <listeners> <jms-listener busidref="esbChannel" maxThreads="1" name="jmsListener" /> </listeners> <actions faultXsd="/schema/wsa-ncinv-fault-v1-0.xsd" inXsd="/schema/wsa-ncinv-request-v1-0.xsd" mep="RequestResponse" outXsd="/schema/wsa-ncinv-response-v1-0.xsd" validate="true" webservice="true"> <action class="org.jboss.soa.esb.actions.SystemPrintln" name="println: incoming request"> <property name="message" value="Incoming request" /> </action> <action class="consumer.ItsmRequestProcessor" name="custom: itsm request processor" /> <action class="org.jboss.soa.esb.smooks.SmooksAction" name="smooks: transform request"> <property name="smooksConfig" value="/transform/smooks-config-request.xml" /> </action> <action class="org.jboss.soa.esb.actions.SystemPrintln" name="println: outgoing request"> <property name="message" value="Outgoing request" /> </action> <action class="org.jboss.soa.esb.actions.routing.http.HttpRouter" name="soap proxy: call nc-inv webservice"> <property name="method" value="POST" /> <property name="endpointUrl" value="http://localhost:8088/" /> </action> <action class="org.jboss.soa.esb.actions.SystemPrintln" name="println: incoming response"> <property name="message" value="Incoming response" /> </action> <action class="org.jboss.soa.esb.smooks.SmooksAction" name="smooks: transform response"> <property name="smooksConfig" value="/transform/smooks-config-response.xml" /> </action> <action class="org.jboss.soa.esb.actions.SystemPrintln" name="println: transformed response"> <property name="message" value="Transformed response" /> </action> <action class="consumer.ItsmResponseProcessor" name="custom: itsm response processor"> <property name="idElementName" value="ncoInstanceId" /> <property name="idElementNamespace" value="http://bla.com/xml/itsm-ncinv-wsagent/v1-0" /> </action> <action class="org.jboss.soa.esb.actions.SystemPrintln" name="println: outgoing response"> <property name="message" value="Outgoing Response" /> </action> </actions> </service> </services> </jbossesb>
If the routing (static routing for test purposes) will be defined, the log output shows "No response message for RequestResponse mep!"
jboss-esb.xml with test routing:
<?xml version="1.0"?> <jbossesb parameterReloadSecs="5" xmlns="http://anonsvn.labs.jboss.com/labs/jbossesb/trunk/product/etc/schemas/xml/jbossesb-1.2.0.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://anonsvn.labs.jboss.com/labs/jbossesb/trunk/product/etc/schemas/xml/jbossesb-1.2.0.xsd http://anonsvn.jboss.org/repos/labs/labs/jbossesb/trunk/product/etc/schemas/xml/jbossesb-1.2.0.xsd"> <providers> <jms-provider connection-factory="ConnectionFactory" name="JBossMQ"> <jms-bus busid="esbChannel"> <jms-message-filter dest-name="queue/quickstart_publish_as_webservice_Request_esb_4" dest-type="QUEUE" /> </jms-bus> <jms-bus busid="esbChannel2"> <jms-message-filter dest-name="queue/qConsumer" dest-type="QUEUE" /> </jms-bus> </jms-provider> </providers> <services> <service category="wsa-ncinv" description="" name="getObjectByKeyRequest"> <listeners> <jms-listener busidref="esbChannel" name="jmsListener" /> </listeners> <actions faultXsd="/schema/wsa-ncinv-fault-v1-0.xsd" inXsd="/schema/wsa-ncinv-request-v1-0.xsd" mep="RequestResponse" outXsd="/schema/wsa-ncinv-response-v1-0.xsd" validate="true" webservice="true"> <action class="org.jboss.soa.esb.actions.SystemPrintln" name="println: incoming request"> <property name="message" value="Incoming request" /> </action> <action class="com.frox.itsm.ncinv.consumer.ItsmRequestProcessor" name="custom: itsm request processor" /> <action class="org.jboss.soa.esb.actions.StaticRouter" name="static" process="process"> <property name="destinations"> <route-to destination-name="test" service-category="wsa-ncinv" service-name="test" /> </property> </action> </actions> </service> <service category="wsa-ncinv" description="test" name="test"> <listeners> <jms-listener busidref="esbChannel2" is-gateway="false" maxThreads="1" name="jmsListener2" /> </listeners> <actions mep="RequestResponse"> <action class="org.jboss.soa.esb.actions.SystemPrintln" name="println: test"> <property name="message" value="TEST-TEST" /> </action> </actions> </service> </services> </jbossesb>
Log output:
13:47:27,903 INFO [STDOUT] Incoming request: 13:47:27,903 INFO [STDOUT] [<v1:getObjectByKeyRequest xmlns:v1="http://frox.com/xml/itsm-ncinv-wsagent/v1-0" xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"> <v1:ncoInstanceId>XX12E120524153kWmkTAPdQEAgFrYJ</v1:ncoInstanceId> <v1:objectId>AC3.456.123.986</v1:objectId> <v1:objectIdType>cfsInstanceIdKey</v1:objectIdType> <v1:inventoryType>CFS</v1:inventoryType> </v1:getObjectByKeyRequest>]. 13:47:27,908 WARN [ActionProcessingPipeline] No response message for RequestResponse mep! To: JMSEpr [ PortReference < <wsa:Address jms:localhost:1099#queue/quickstart_publish_as_webservice_Request_esb_4/>, <wsa:ReferenceProperties jbossesb:java.naming.factory.initial : org.jnp.interfaces.NamingContextFactory/>, <wsa:ReferenceProperties jbossesb:java.naming.provider.url : localhost:1099/>, <wsa:ReferenceProperties jbossesb:java.naming.factory.url.pkgs : org.jnp.interfaces/>, <wsa:ReferenceProperties jbossesb:destination-type : queue/>, <wsa:ReferenceProperties jbossesb:destination-name : queue/quickstart_publish_as_webservice_Request_esb_4/>, <wsa:ReferenceProperties jbossesb:specification-version : 1.1/>, <wsa:ReferenceProperties jbossesb:connection-factory : ConnectionFactory/>, <wsa:ReferenceProperties jbossesb:message-selector : serviceName='getEntityByKeyRequest'/>, <wsa:ReferenceProperties jbossesb:persistent : true/>, <wsa:ReferenceProperties jbossesb:acknowledge-mode : AUTO_ACKNOWLEDGE/>, <wsa:ReferenceProperties jbossesb:transacted : false/>, <wsa:ReferenceProperties jbossesb:type : urn:jboss/esb/epr/type/jms/> > ] ReplyTo: JMSEpr [ PortReference < <wsa:Address jms:localhost:1099#queue/quickstart_publish_as_webservice_Request_esb_4_reply/>, <wsa:ReferenceProperties jbossesb:java.naming.provider.url : localhost:1099/>, <wsa:ReferenceProperties jbossesb:java.naming.factory.initial : org.jnp.interfaces.NamingContextFactory/>, <wsa:ReferenceProperties jbossesb:java.naming.factory.url.pkgs : org.jnp.interfaces/>, <wsa:ReferenceProperties jbossesb:destination-type : queue/>, <wsa:ReferenceProperties jbossesb:destination-name : queue/quickstart_publish_as_webservice_Request_esb_4_reply/>, <wsa:ReferenceProperties jbossesb:specification-version : 1.1/>, <wsa:ReferenceProperties jbossesb:connection-factory : ConnectionFactory/>, <wsa:ReferenceProperties jbossesb:message-selector : serviceName='getEntityByKeyRequest' AND jbossESBresponseUUID='23db1e23-e556-4752-bd03-8faafd6fa1a7'/>, <wsa:ReferenceProperties jbossesb:persistent : true/>, <wsa:ReferenceProperties jbossesb:acknowledge-mode : AUTO_ACKNOWLEDGE/>, <wsa:ReferenceProperties jbossesb:transacted : false/>, <wsa:ReferenceProperties jbossesb:type : urn:jboss/esb/epr/type/jms/> > ] MessageID: 91bbd5fb-ad3a-48f2-9ca8-5dd0b93f2e6d RelatesTo: jms:correlationID#91bbd5fb-ad3a-48f2-9ca8-5dd0b93f2e6d 13:47:27,910 INFO [STDOUT] TEST-TEST: 13:47:27,910 INFO [STDOUT] [<v1:getObjectByKeyRequest xmlns:v1="http://frox.com/xml/itsm-ncinv-wsagent/v1-0" xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"> <v1:ncoInstanceId>XX12E120524153kWmkTAPdQEAgFrYJ</v1:ncoInstanceId> <v1:objectId>AC3.456.123.986</v1:objectId> <v1:objectIdType>cfsInstanceIdKey</v1:objectIdType> <v1:inventoryType>CFS</v1:inventoryType> </v1:getObjectByKeyRequest>].
How can be made sure the response is sent back to the originating service?
Any advice would be very appreciated.
Kind regards,
Jonas