我正在尝试集成Apache CXF和Apache Camel。camel配置:
<cxf:cxfEndpoint id="authTest"
address="/cxfAuth"
serviceClass="com.test.AuthService" >
<cxf:properties>
<entry key="dataFormat" value="POJO" />
<entry key="setDefaultBus" value="true" />
</cxf:properties>
</cxf:cxfEndpoint>
<camel:camelContext trace="true">
<camel:route>
<camel:from uri="cxf:bean:authTest" />
<camel:to uri="bean:routeExitResponseProcessor"/>
</camel:route>
</camel:camelContext>现在,为了调用web服务上的特定操作,我使用以下代码:
<camel:route>
<camel:from uri="direct:startAuthTest"/>
<camel:setHeader headerName="getEmployee">
<camel:constant>gid</camel:constant>
</camel:setHeader>
<camel:to uri="cxf:bean:authTest" />
<camel:log message=">>> data is : ${body}"/>
<camel:to uri="bean:routeExitResponseProcessor"/>
</camel:route>但在包含上述配置后,我在服务器控制台上获得了WARN ServletController:149 - Can't find the the request for http://localhost:8080/CXFService/services/cxfAuth's Observer,而我的and服务在浏览器上找不到。
请帮帮忙。
发布于 2012-04-25 01:43:49
您可以调用以下代码来获取CXF操作的名称为called...see http://camel.apache.org/cxf.html,以了解更多详细信息
String operation = (String)in.getHeader(CxfConstants.OPERATION_NAME);此外,请参阅此单元测试以了解用法示例...
http://svn.apache.org/repos/asf/camel/trunk/components/camel-cxf/src/test/java/org/apache/camel/component/cxf/CxfConsumerTest.java
发布于 2014-12-05 21:56:49
在CXF端点
<cxf:cxfEndpoint id="yourServiceCall"
address="http://localhost:8181/yourservice/services/yourserviceport"
wsdlURL="wsdl/yourwsdl.wsdl" xmlns:ns="http://service.your.com"
endpointName="ns:YourServicePort" serviceName="ns:yourService"
serviceClass="com.service.YourServicePortType">和在Camel端点
camelContext id="camelId" xmlns="http://camel.apache.org/schema/spring">
<camel:dataFormats>
<camel:jaxb contextPath="com.your.service" id="jaxb" />
</camel:dataFormats>
<route id="route1">
<from uri="cxf:bean:yourServiceCall?dataFormat=PAYLOAD" />
<camel:unmarshal ref="jaxb" />
<log message="log: Called from cxf endpoint" />
<!-- Your Logic -->
<camel:process ref="ExitResponseProcessor"/>
<camel:marshal ref="jaxb" />
</camel:route>基于Himanshu Yadav评论:更新
<camel:choice>
<camel:when>
<camel:simple>${body} is com.your.service.YourRequest</camel:simple>
<!-- Your Logic or call any bean method with <camel:bean ref="YourBean " method="YourMethod" / /> -->
</camel:when>
<camel:when> </camel:when>
<camel:otherwise> </camel:otherwise>
</camel:choicehttps://stackoverflow.com/questions/10301895
复制相似问题