Apache Camel CXF传输 - 向JaxWs客户端添加拦截器

时间:2015-08-11 09:36:16

标签: apache-camel

我们使用Camel传输JaxWS客户端通过RabbitMQ调用soap服务,如下所示(参考:http://camel.apache.org/better-jms-transport-for-cxf-webservice-using-apache-camel.html,并使用camel-cxf-transport版本2.15.2)。

服务已成功调用,但无法将拦截器添加到JaxWS客户端代理。尝试以下方法:

<client id="TestService" xmlns="http://cxf.apache.org/jaxws"
        xmlns:testsvc="http://mytest.com/services/test/v2"
        serviceName="testsvc:Test_v2_0_service" endpointName="testsvc:HttpTestPort"
        address="camel://direct:TestService" serviceClass="test.v2.TestSVCV20" >

        <outInterceptors>
            <ref bean="wss4jOutInterceptor" />
        </outInterceptors>

        <features>
            <logging xmlns="http://cxf.apache.org/core"/>
        </features>
</client>


<bean id="wss4jOutInterceptor" class="org.apache.cxf.ws.security.wss4j.WSS4JOutInterceptor">
        <constructor-arg>
            <map>
                <entry key="action" value="testToken" />
                <entry key="user" value="dummy" />
                <entry key="passwordType" value="PasswordTestTxt" />
                <entry key="passwordCallbackClass" value="test.PwdCallbackclass" /> 
            </map>
        </constructor-arg>
</bean>

当添加带有bean ref的拦截器标记时,它显示以下错误:

org.springframework.beans.factory.parsing.BeanDefinitionParsingException: Configuration problem: Cannot locate BeanDefinitionParser for element [ref]

任何人都可以帮助您了解如何在camel transport cxf客户端中正确添加拦截器的示例吗?

感谢。

1 个答案:

答案 0 :(得分:0)

问题得到解决。为spring元素添加了名称空间声明以解决问题。

请参阅链接了解更多详情:

http://camel.465427.n5.nabble.com/Apache-Camel-CXF-Transport-Adding-interceptors-to-JaxWs-Client-td5770596.html

感谢。