Apache Camel CXF 传输 - 向 JaxWs 客户端添加拦截器
Apache Camel CXF Transport - Adding interceptors to JaxWs Client
我们正在使用 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 客户端中正确添加拦截器的示例吗?
谢谢。
问题已解决。为 spring 元素添加了命名空间声明以解决问题。
详情请见link:
谢谢。
我们正在使用 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 客户端中正确添加拦截器的示例吗?
谢谢。
问题已解决。为 spring 元素添加了命名空间声明以解决问题。
详情请见link:
谢谢。