servicemix中的jaxws和camel路由

时间:2011-02-28 21:23:12

标签: apache-camel apache-servicemix

我想做这样的事情:

<jaxws:endpoint id="AbcEsbHTTPEndpoint" 
    implementor="com.abc.esb.ABCWSServiceImpl"
    address="/ABCWSServiceService"
    wsdlLocation="wsdl/ABCWSService.wsdl"
    endpointName="e:ABCWSService"
    serviceName="s:ABCWSServiceService"
    xmlns:e="http://com.abc.esb/abcesb/services/ABCWSService"
    xmlns:s="http://com.abc.esb/abcesb/services/ABCWSService">
</jaxws:endpoint>


<camelContext xmlns="http://camel.apache.org/schema/spring">
    <route>
        <from uri="cxf:bean://ABCWSServiceService"/>
        <to uri="cxf:bean:decodeClient"/>
    </route>
</camelContext>    

<jaxws:client id="decodeClient" 
    address="http://ESB-DEV1:9081/abcesb/services/Decoder"
    wsdlLocation="http://ESB-DEV1:9081/abcesb/services/Decoder?wsdl" 
    serviceClass="com.abc.esb.ABCServiceInterface" 
    abstract="true" > 
</jaxws:client>  

我不明白如何配置从 <jaxws:endpoint&gt; <jaxws:client&gt; 的驼峰路线是什么语法使用?我知道您可以使用 <cxf:cxfEndpoint&gt; ,但如果我不需要,我不想使用它。

我知道如何使用JBI执行此操作,但我想使用OSGI包而不是JBI将其部署到servicemix中。

2 个答案:

答案 0 :(得分:2)

您的配置中的jaxws:client 端点与jaxws:endpoint一样,可以使用bean组件进行连接:

<camelContext xmlns="http://camel.apache.org/schema/spring">
    <route>
        <from uri="bean:AbcEsbHTTPEndpoint"/>
        <to uri="bean:decodeClient"/>
    </route>
</camelContext>

通常需要在两者之间做一些事情 - 比如以某种方式调整消息 - 但上面至少会实现路由。

答案 1 :(得分:-4)

请参阅camel发行版中示例中的一些cxf示例。他们展示了如何设置cxf,而不是jbi。