Problem Description: 我无法从我的camel servlet路由到cxfbean . 路由初始化失败,并显示以下错误消息:
"Failed to create route route1 at: >>> To[cxfbean:fooEndpoint] <<< in route:
Route[[From[servlet:///?servletName=BwsServlet]] -> [To[cxfb... because of Failed to resolve
endpoint: cxfbean://fooEndpoint due to: null".
没有cxfbean,servlet就可以正常运行 .
UPDATED :请注意我打算使用Camel Cxf Bean Component而不是Camel Cxf Bean .
What I want to achieve: 我正在Tomcat中运行一个camel servlet . 我有一个bean来实现我的webservice接口(由CXF从WSDL生成) . 我想在将XML消息体传递给这个webservice bean之前处理它 . 我想使用cxf bean组件而不是cxf endpoints bean,因为除了已经运行的camel servlet之外,我不希望我的cxf endpoints 侦听网络端口 .
How my code looks like: 我的camel-config.xml看起来像这样:
<bean id="bwsRouteBuilder" class="local.com.foo.BwsRouteBuilder"/>
<bean id="fooEndpoint" class="local.com.foo.FooBws"/>
<camel:camelContext id="bws">
<camel:routeBuilder ref="bwsRouteBuilder"/>
</camel:camelContext>
我的路由构建器(用Java DSL编写)看起来像这样:
public void configure() throws Exception {
from("servlet:///?servletName=BwsServlet")
// some processing of message here
.to("cxfbean:fooEndpoint");
}
UPDATED :请注意上面代码中的cxfbean URI格式here .
我的web.xml看起来像这样:
<servlet>
<servlet-name>BwsServlet</servlet-name>
<servlet-class>org.apache.camel.component.servlet.CamelHttpTransportServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>BwsServlet</servlet-name>
<url-pattern>/*</url-pattern>
</servlet-mapping>
camel-cxf作为依赖项包含在我的pom.xml中 .
Where I looked at so far for help: 我正在关注Apache Camel cxfbean description的文档,然后关注stackoverflow . 我希望我的问题不是一个明智的回答,我是骆驼的新手 .
非常感谢你的想法
1 回答
如果你想使用一个cxf bean,你必须在你的路由中写“cxf:bean:fooEndpoint”(你忘记了:在cxf和bean之间) .