Hi Freeman,
I restarted both CXF BC and SE units, when I test it with soapUI Camel
got called and in nmr:list I saw:
{http://servicemix.apache.org/samples/wsdl-first}PersonService:soap
{http://servicemix.apache.org/samples/wsdl-first}PersonService:PersonImplPort
{http://servicemix.apache.org/samples/wsdl-first}PersonService:soap
{http://camel.apache.org/schema/jbi}provider:ID:91.94.149.51-12916050960-1:0
When it comes to my configuration I used Fuse archetypes for osgi components.
I first created BC and SE. It worked like a charm. Then I decided to
introduce Camel between them.
in BC I have:
<cxfbc:consumer wsdl="classpath:wsdl/person.wsdl"
targetInterface="person:Person" targetService="person:PersonService"
useJBIWrapper="false" useSOAPEnvelope="false">
</cxfbc:consumer>
person:PersonService is CXF SE endpoint...
But when Camel unit gets started first it works as expected BC ->
Camel -> SE. If BC gets started first it routes SOAP messages directly
to CXF SE. Startup order is important here - and I know it's wrong.
That is why I'm asking if there a better approach for this.
thanks,
Łukasz
On 8 June 2010 09:00, Freeman Fang <[email protected]> wrote:
>
> On 2010-6-8, at 下午2:52, Łukasz Budnik wrote:
>
>> Hi SM users,
>>
>> I want to create a simple flow: CXF BC -> Camel -> CXF SE
>>
>> I wrote something like that:
>>
>> <osgi:camelContext xmlns="http://camel.apache.org/schema/spring">
>> <route id="order-processing-route">
>> <from
>> uri="jbi:endpoint:http://servicemix.apache.org/samples/wsdl-first/PersonService/soap"/>
>> <convertBodyTo type="org.w3c.dom.Document"/>
>> <bean ref="myTransform" method="transform" />
>> <to uri="log:TransformedInput" />
>> <to
>> uri="jbi:endpoint:http://servicemix.apache.org/samples/wsdl-first/PersonService/PersonImplPort"/>
>> <to uri="log:Output" />
>> </route>
>> </osgi:camelContext>
>>
>> where http://servicemix.apache.org/samples/wsdl-first/PersonService/soap
>> is BC and
>> http://servicemix.apache.org/samples/wsdl-first/PersonService/PersonImplPort
>> is SE.
>>
> Hi,
>
> I can't understand
> http://servicemix.apache.org/samples/wsdl-first/PersonService/soap is bc
> endpoint, IMHO it should be target of cxf bc endpoint.
>
> Freeman
>
>> After I deployed it to SM 4 (in fact it's FUSE ESB 4.2) in nmr:list I
>> saw that camel exported a second PersonService:soap endpoint:
>>
>>
>> {http://servicemix.apache.org/samples/wsdl-first}PersonService:PersonImplPort
>> {http://servicemix.apache.org/samples/wsdl-first}PersonService:soap
>> {http://servicemix.apache.org/samples/wsdl-first}PersonService:soap
>>
>> After I tested my BC with soapUI, Camel route was executed, I also saw
>> in nmr:list a new endpoint, it was some kind of random-unique camel
>> route id.
>>
>> Most surprisingly it worked yesterday, but does not work today. So
>> there has to be something wrong with my approach :)
>>
>> What is the best approach for this?
>>
>> thanks,
>> Łukasz
>
>
> --
> Freeman Fang
> ------------------------
> Open Source SOA: http://fusesource.com
>
>