我们使用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客户端中正确添加拦截器的示例吗?
感谢。
答案 0 :(得分:0)
问题得到解决。为spring元素添加了名称空间声明以解决问题。
请参阅链接了解更多详情:
感谢。