问题描述: 我无法从我的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就可以正常运行。
更新:请注意,我打算使用Camel Cxf Bean Component而不是Camel Cxf Bean。
我想要实现的目标: 我在Tomcat中运行camel servlet。我有一个bean来实现我的webservice接口(由CXF从WSDL生成)。我想在将XML消息体传递给这个webservice bean之前处理它。我想使用cxf bean组件而不是cxf端点bean,因为除了已经运行的camel servlet之外,我不希望我的cxf端点侦听网络端口。
我的代码如何: 我的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");
}
更新:请注意上面代码中的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中。
我到目前为止寻求帮助的地方:我正在关注Apache Camel cxfbean description上的文档并遵循stackoverflow。我希望我的问题不是一个明智的回答,我是骆驼的新手。
非常感谢你的想法
答案 0 :(得分:-1)
如果你想使用cxf bean,你必须在你的路线中写“cxf:bean:fooEndpoint”(你忘了:在cxf和bean之间)。
public void configure() throws Exception {
from("servlet:///?servletName=BwsServlet")
// some processing of message here
.to("cxf:bean:fooEndpoint");
}