[jboss-user] [EJB/JBoss] - (Urgent)Query regarding HttpRouter/JBR-provider

puneetjain do-not-reply at jboss.com
Sun Apr 6 06:55:43 EDT 2008


Hi,

I am writing an application in JBossESB.
Environement:
=========
JBoss Application Server -4.2.2.GA
JbossESB 4.2.1GA

I am using jbr-provider for http protocol support. I have to route the http request to a servlet from JBossESB. To achieve this I have written below configuration. Regarding the component used in the configuration I have few questions:

Question 1:
=======
Does HttpRouter supports only OneWay communication? As per the java code of HttpRouter class (Line No 113) the message returned by the class is always null. How can I get the response back sent by the URL called?

Question2:
=======

It seems that jbr-provider have support for the data sent by Http POST method only as the body of message is null in case of GET request and Exception is thrown. 
Is so what is the way to handle data sent by GET Request?
Exception is given below:

Question:
=======
Is there any other router class to invoke a request to a Servlet in RequestResponse mep?


  | <?xml version = "1.0" encoding = "UTF-8"?>
  | <jbossesb
  |         xmlns="http://anonsvn.labs.jboss.com/labs/jbossesb/trunk/product/etc/schemas/xml/jbossesb-1.0.1.xsd"
  |         parameterReloadSecs="5">
  | 
  |     <providers>
  | 		<jms-provider name="JBossMQ" connection-factory="ConnectionFactory"
  |                       jndi-context-factory="org.jnp.interfaces.NamingContextFactory"
  |                       jndi-URL="localhost">
  | 
  |             <jms-bus busid="sampleEsbChannel">
  |                 <jms-message-filter dest-type="QUEUE" dest-name="queue/quickstart_sample_esb"/>
  |             </jms-bus>
  |         </jms-provider>
  | 
  |         <jbr-provider name="JBR-Http" protocol="http" host="0.0.0.0">
  |             <jbr-bus busid="Http-1" port="8765" />
  |         </jbr-provider>
  |     </providers>
  | 
  |    
  | <services>
  |         <service category="SampleCategory" name="Sample" description="WS Frontend speaks natively to the ESB">
  |             <listeners>
  |                 <jbr-listener name="Http-Gateway" busidref="Http-1" is-gateway="true" maxThreads="1"/>
  |                 <jms-listener name="JMS-ESBListener" busidref="sampleEsbChannel" maxThreads="1"/>
  |             </listeners>
  |             <actions>
  | 				 <action name="httprouter" class="org.jboss.soa.esb.actions.routing.HttpRouter">
  | 				        <property name="routeUrl" value="http://localhost:8080/servlet"></property>
  | 				 </action>
  | 			</actions>
  |         </service>
  |  </services>
  | 	
  | </jbossesb>
  | 

Exception:

  | 15:41:29,211 INFO  [MessagePayloadProxy] Setting null data in message location(s): [org.jboss.soa.esb.message.defaultEntry]
  | 15:41:29,226 WARN  [ServiceInvoker] Badly formed EPR [EPR: PortReference < <wsa:Address http://0.0.0.0:8765/> >] 
  | for Service [SampleCategory:Sample] and Message [header: [  ]].Courier for EPR not supported!
  | 15:41:29,242 INFO  [ServiceInvoker] Invalid EPR for service: ignoring for message: header: [  ]
  | 15:41:30,211 WARN  [ActionProcessingPipeline] Unexpected exception caught while processing the action pipeline: header: 
  | [ To: JMSEpr [ PortReference < <wsa:Address jms://localhost/queue/quickstart_sample_esb/>, 
  | <wsa:ReferenceProperties jbossesb:java.naming.factory.initial : org.jnp.interfaces.NamingContextFactory/>, 
  | <wsa:ReferenceProperties jbossesb:java.naming.provider.url : localhost/>, <wsa:ReferenceProperties jbossesb:destination-type : queue/>,
  | <wsa:ReferenceProperties jbossesb:specification-version : 1.1/>, <wsa:ReferenceProperties jbossesb:connection-factory : 
  | ConnectionFactory/>, <wsa:ReferenceProperties jbossesb:persistent : true/>, <wsa:ReferenceProperties jbossesb:acknowledge-mode : 1/> > ] 
  | ReplyTo: JMSEpr [ PortReference < <wsa:Address jms://localhost/queue/quickstart_sample_esb_reply/>, 
  | <wsa:ReferenceProperties jbossesb:java.naming.provider.url : localhost/>, <wsa:ReferenceProperties jbossesb:java.nam
  | ing.factory.initial : org.jnp.interfaces.NamingContextFactory/>,
  | <wsa:ReferenceProperties jbossesb:destination-type : queue/>, <wsa:ReferenceProperties jbossesb:specification-version : 1.1/>, 
  | <wsa:ReferenceProperties jbossesb:connection-factory : ConnectionFactory/>, 
  | <wsa:ReferenceProperties jbossesb:message-selector : jbossESBresponseUUID='cbfddd36-8ad3-4af7-8a68-13f2cf8af0d2'/>,
  | <wsa:ReferenceProperties jbossesb:persistent : true/>, 
  | <wsa:ReferenceProperties jbossesb:acknowledge-mode : 1/>, <wsa:ReferenceProperties jbossesb:type : urn:jboss/esb/epr/type/jms/> > ] Me
  | ssageID: ID:2-12074766900861 RelatesTo: jms:correlationID#5121a176-0b5f-4e4b-bdcb-c388236db385 ]
  | org.jboss.soa.esb.actions.ActionProcessingException: org.jboss.soa.esb.listeners.message.
  | MessageDeliverException: Null data found in message location(s): [org.jboss.soa.esb.message.defaultEntry]
  |         at org.jboss.soa.esb.actions.routing.HttpRouter.process(HttpRouter.java:95)
  |         at org.jboss.soa.esb.listeners.message.ActionProcessingPipeline.process(ActionProcessingPipeline.java:316)
  |         at org.jboss.soa.esb.listeners.message.MessageAwareListener$1.run(MessageAwareListener.java:303)
  |         at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:885)
  |         at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:907)
  |         at java.lang.Thread.run(Thread.java:619)
  | Caused by: org.jboss.soa.esb.listeners.message.MessageDeliverException: Null data found in message locati
  | 					on(s): [org.jboss.soa.esb.message.defaultEntry]
  |         at org.jboss.soa.esb.message.MessagePayloadProxy.getPayload(MessagePayloadProxy.java:161)
  |         at org.jboss.soa.esb.actions.routing.HttpRouter.process(HttpRouter.java:93)
  |         ... 5 more
  | 15:41:30,304 ERROR [JBossRemotingGatewayListener] JBoss Remoting Gateway failed to synchronously deliver
  | message to target service [SampleCategory:Sample].
  | org.jboss.soa.esb.couriers.FaultMessageException: org.jboss.soa.esb.actions.ActionProcessingException: org.jboss.soa.esb.listeners.message.Me
  | ssageDeliverException: Null data found in message location(s): [org.jboss.soa.esb.message.defaultEntry]
  |         at org.jboss.soa.esb.listeners.message.errors.Factory.createExceptionFromFault(Factory.java:49)
  |         at org.jboss.internal.soa.esb.couriers.helpers.JmsComposer.compose(JmsComposer.java:83)
  |         at org.jboss.internal.soa.esb.couriers.JmsCourier.pickup(JmsCourier.java:393)
  |         at org.jboss.internal.soa.esb.couriers.TwoWayCourierImpl.pickup(TwoWayCourierImpl.java:223)
  |         at org.jboss.internal.soa.esb.couriers.TwoWayCourierImpl.pickup(TwoWayCourierImpl.java:205)
  |         at org.jboss.soa.esb.client.ServiceInvoker$EPRInvoker.attemptDelivery(ServiceInvoker.java:444)
  |         at org.jboss.soa.esb.client.ServiceInvoker$EPRInvoker.access$200(ServiceInvoker.java:370)
  |         at org.jboss.soa.esb.client.ServiceInvoker.post(ServiceInvoker.java:259)
  |         at org.jboss.soa.esb.client.ServiceInvoker.deliverSync(ServiceInvoker.java:155)
  |         at org.jboss.soa.esb.listeners.message.UncomposedMessageDeliveryAdapter.deliverSyncWithoutDecomposing(UncomposedMessageDeliveryAdapter.java:107)
  |         at org.jboss.soa.esb.listeners.message.UncomposedMessageDeliveryAdapter.deliverSync(UncomposedMessageDeliveryAdapter.java:86)
  |         at org.jboss.soa.esb.listeners.gateway.JBossRemotingGatewayListener.invoke(JBossRemotingGatewayListener.java:316)
  |         at org.jboss.remoting.ServerInvoker.invoke(ServerInvoker.java:769)
  |         at org.jboss.remoting.transport.coyote.CoyoteInvoker.service(CoyoteInvoker.java:310)
  |         at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844)
  |         at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583)
  |         at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:446)
  |         at java.lang.Thread.run(Thread.java:619)
  | Caused by: org.jboss.soa.esb.actions.ActionProcessingException: org.jboss.soa.esb.listeners.message.MessageDeliverException: Null data found in message
  | location(s): [org.jboss.soa.esb.message.defaultEntry]
  |         at org.jboss.soa.esb.actions.routing.HttpRouter.process(HttpRouter.java:95)
  |         at org.jboss.soa.esb.listeners.message.ActionProcessingPipeline.process(ActionProcessingPipeline.java:316)
  |         at org.jboss.soa.esb.listeners.message.MessageAwareListener$1.run(MessageAwareListener.java:303)
  |         at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:885)
  |         at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:907)
  |         ... 1 more
  | Caused by: org.jboss.soa.esb.listeners.message.MessageDeliverException: Null data found in message location(s): [org.jboss.soa.esb.message.defaultEntry]
  |         at org.jboss.soa.esb.message.MessagePayloadProxy.getPayload(MessagePayloadProxy.java:161)
  |         at org.jboss.soa.esb.actions.routing.HttpRouter.process(HttpRouter.java:93)
  |         ... 5 more
  | 15:41:30,476 ERROR [CoyoteInvoker] Error processing request
  | java.io.NotSerializableException: org.jboss.internal.soa.esb.message.format.xml.MessageImpl
  |         at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1156)
  |         at java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1509)
  |         at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1474)
  |         at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1392)
  |         at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1150)
  |         at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:326)
  |         at org.jboss.remoting.serialization.impl.java.JavaSerializationManager.sendObjectVersion1_2(JavaSerializationManager.java:107)
  |         at org.jboss.remoting.serialization.impl.java.JavaSerializationManager.sendObject(JavaSerializationManager.java:91)
  |         at org.jboss.remoting.marshal.serializable.SerializableMarshaller.write(SerializableMarshaller.java:120)
  |         at org.jboss.remoting.marshal.http.HTTPMarshaller.write(HTTPMarshaller.java:73)
  |         at org.jboss.internal.soa.esb.remoting.HttpMarshaller.write(HttpMarshaller.java:51)
  |         at org.jboss.remoting.transport.coyote.CoyoteInvoker.versionedWrite(CoyoteInvoker.java:434)
  |         at org.jboss.remoting.transport.coyote.CoyoteInvoker.service(CoyoteInvoker.java:377)
  |         at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844)
  |         at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583)
  |         at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:446)
  |         at java.lang.Thread.run(Thread.java:619)
  | 


Please help me resolve these problems.
Any reply will be appreciated.

Thanks in Advanced
Puneet



View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4141885#4141885

Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4141885



More information about the jboss-user mailing list