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.

Reply via email to