使用WSDL动态调用Web服务

时间:2013-04-16 01:46:36

标签: web-services apache-camel

我需要使用WSDL文件配置camel路由端点。

我不知道服务类,我不想把服务类文件放在我的类路径中。我只有WSDL文件。

我如何解决我的任务?

1 个答案:

答案 0 :(得分:0)

定义camel cxf端点如下

<cxf:cxfEndpoint id="testServiceEndpoint" address="http://localhost:9000/web-service/TestService" wsdlURL="TestService.wsdl" serviceClass="com.webservice.AllServiceService" endpointName="s:TestServiceHttpSoap11Endpoint" serviceName="s:TestPutService" xmlns:s="http://webservices/testService"/>

路线配置

<route>
    <from uri="cxf:bean:testServiceEndpoint"/>
<to uri="log:output?showAll=true" />
</route>

请注意,我已经提到了一个serviceClass属性,但是通过使用 @WebServiceProvider 注释

,可以将此类设置为通用的以处理所有Web服务
@WebServiceProvider
@ServiceMode(Mode.PAYLOAD)
public class AllServiceService implements Provider<StreamSource> {

    @Override
    public StreamSource invoke(StreamSource request) {
    }
}