1

我想我需要这样的东西:http ://camel.apache.org/cxf-tomcat-example.html

我有一个带有 jax-ws 注释的 webservice 类,我想使用这个类来处理请求并产生响应而不是自定义处理器。像这样的东西:from(cxf ws endpoit).to(my webservice implementation)

这可能吗?我可以将我的消息路由到正确的 java 方法吗?这与我可以使用cxfand完全一样jax-ws,但我也想使用骆驼。我想使用代码优先的方法(生成的 WSDL)。

4

1 回答 1

0

我可以将我的消息路由到正确的 java 方法吗?

如果您的意思是您手动创建的bean的特定方法,那么是的。

例如:

创建自定义bean:

public class CustomProcessor {

    public void processSomething(Exchange exchange) {
        Something smth = exchange.getIn().getBody(Something.class); //Your message's body              
    }

}

使用Spring创建骆驼配置是这样的:

<bean id="processor" class="your.custom.CustomProcessor"/>

<camel:camelContext trace="true" id="camelContext" >

    <camel:route id="camelRoute">
        <camel:from uri="cxf:bean:yourWebServiceListenerEndpoint?dataFormat=POJO&amp;synchronous=true" />
        <camel:choice>
            <camel:when>
                <camel:simple>${headers.operationName} == 'DoSomething'</camel:simple>
                <camel:bean ref="processor" method="processSomething"/>
            </camel:when>
        </camel:choice>
        <camel:to uri="cxf:bean:yourWebServiceTargetEndpoint"/>
    </camel:route>

</camel:camelContext>

根据操作名称骆驼将消息路由到相应的处理器。你可以用任何你喜欢的方式在 Camel 中发送你的消息。你只需要想想怎么做。从你的问题来看,这是我能给出的。如果您将其更新为更具体,也许我可以提供更多帮助。

也可以看看:

于 2013-02-15T21:13:14.750 回答