首页 文章

Apache Camel:从camel tomcat servlet到cxfbean组件的路由

提问于
浏览
4

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 回答

  • -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");
    }
    

相关问题