Sorry typo mistake, I mean mep not map ;) -----Original Message----- From: Sergey Beryozkin <[email protected]> Date: Thu, 29 Oct 2009 05:15:13 To: <[email protected]> Subject: Re: servicemix-http and cxf-bc interoperability
Hi JB, I'm not quite sure what you mean when you say 'with the map', but I'll try to give more info... The test service assembly has 3 units, http-in-su, cxf-bc-su, jms-su. 1. http-in-su : <beans xmlns:http="http://servicemix.apache.org/http/1.0" xmlns:person="http://servicemix.apache.org/samples/wsdl-first"> <!-- gets the initial request and redirects to 'soap2' --> <http:soap-consumer service="person:PersonService" endpoint="soap" targetEndpoint="soap2" targetService="person:PersonService" locationURI="http://0.0.0.0:8192/PersonService/" defaultMep="http://www.w3.org/2004/08/wsdl/in-only" wsdl="classpath:person.wsdl"/> <!-- sends it to the external service exposed by cxfbc:consumer --> <http:soap-provider service="person:PersonService" endpoint="soap2" interfaceName="person:Person" locationURI="http://localhost:9000/PersonService/" wsdl="classpath:person.wsdl"/> <!-- gets the message from the cxf:bc provider and drops it to the queue --> <http:soap-consumer service="person:PersonService" endpoint="soap3" targetService="person:jms" locationURI="http://localhost:9001/PersonService/" defaultMep="http://www.w3.org/2004/08/wsdl/in-only" wsdl="classpath:person.wsdl"/> </beans> person.wsdl has 3 ports for PersonService, named soap, soap2 and soap3. Next is the cxfbc-su : <beans xmlns:cxfbc="http://servicemix.apache.org/cxfbc/1.0" xmlns:person="http://servicemix.apache.org/samples/wsdl-first"> <!-- gets the message sent from a http:soap-provider 'soap2' endpoint and redirects to cxf:bc provider --> <cxfbc:consumer wsdl="classpath:person.wsdl" targetService="person:PersonService" targetInterface="person:Person" endpoint="pojo" targetEndpoint="pojo2"/> <!-- sends it back to the http:soap-consumer 'soap3' --> <cxfbc:provider wsdl="classpath:person.wsdl" locationURI="http://localhost:9001/PersonService/" service="person:PersonService" endpoint="pojo2" interfaceName="person:Person"/> </beans> The person.wsdl shipped with the cxf-bc su has two ports named 'pojo' and 'pojo2'. There's also a jms su which the 'soap3' endpoint delegates to : beans xmlns:jms="http://servicemix.apache.org/jms/1.0" xmlns:person="http://servicemix.apache.org/samples/wsdl-first"> <jms:endpoint service="person:jms" endpoint="jmsendpoint" role="provider" destinationStyle="queue" jmsProviderDestinationName="bridge.output" connectionFactory="#connectionFactory" /> <bean id="connectionFactory" class="org.apache.activemq.ActiveMQConnectionFactory"> <property name="brokerURL" value="tcp://localhost:61616" /> </bean> </beans> Let me know please if I can provide more info... There're some log entries here : http://pastebin.com/m7180a31e I'm going to look into it further. The interesting thing is that if I introduce cxf:se endpoint into the route and have a cxf:bc consumer delegating to it (as opposed to cxfbc:provider) then the cxf:se endpoint gets called and the initiator (browser) gets the 200 OK back... So I'm wondering may be I need to add a cxf:se and a wiretap, for the cxfbc:consumer to delegate to this wiretap instead, and with the wiretap targeting the cxfse, but also copying the request (through inListener) to the cxfbc:provider.... thanks, Sergey Jean-Baptiste Onofré wrote: > > Hi Sergey, > > Could you provide the xbeans used (especially with the map) ? > > Thx, > Regards > JB > ------Original Message------ > From: Sergey Beryozkin > To: [email protected] > ReplyTo: [email protected] > Subject: servicemix-http and cxf-bc interoperability > Sent: Oct 29, 2009 11:59 > > > Hi, > > I'm working on a test which has to verify that servicemix-http and cxf-bc > components can interoperate (using soap payloads just for now). > > So I'm trying to build a route which can be initiated by the test. > The route can be described as follows : > > 1. The test sends a SOAP request to the HTTP SOAP consumer (port 8192, > endpoint 'soap') which gets and and routes it to the HTTP SOAP provider > (endpoint 'soap2') which pushes it further to a service endpoint listening > on localhost:9000. > > 2. CXF BC consumer listening on localhost:9000 receives it and routes it > to > CXF BC provider which pushes it further to a service endpoint listening on > localhost:9001. > > 3. HTTP SOAP consumer (port 9001, endpoint 'soap3') gets the soap request > and drops it to a jms queue which will be checked by the test. > > I've gone ahead with implementing this route and it appears that the > initial > message is received at 1 and eventually dropped to the queue, however I'm > seeing that the initiator (the browser in this case) gets HTTP 500 due to > one of the exchanges expiring. > > I've posted some more details here : > > http://pastebin.com/m7180a31e > > > I have few questions. > > Is this test route built correctly, given what needs to be tested ? > > Why the initiator does not get the confirmation like 202/200 back given > that > an initial soap consumer is listening in the in-only mode ? > > I think the problem has to do with the fact that a cxfbc:provider expects > some response back but the final http soap consumer just drops the in > message to the queue so cxfbc:provider fails. > > Any hints will be appreciated > > thanks, Sergey > > > > > > > > > > > > > -- > View this message in context: > http://www.nabble.com/servicemix-http-and-cxf-bc-interoperability-tp26110897p26110897.html > Sent from the ServiceMix - User mailing list archive at Nabble.com. > > > > -- View this message in context: http://www.nabble.com/servicemix-http-and-cxf-bc-interoperability-tp26110897p26111901.html Sent from the ServiceMix - User mailing list archive at Nabble.com.
