1

我正在尝试为具有 wsdl 的 onvif 开发一个客户端,如下所示:

http://www.onvif.org/onvif/ver10/device/wsdl/devicemgmt.wsdl

wsdl2java 运行良好并生成代码。但是,因为 wsdl 中没有元素,所以它不会生成服务类供我使用。它只为元素生成一个接口。

对于提供服务的每个设备,Web 服务的端点 URI 都会有所不同。我的问题是,鉴于该 URI,我应该如何获取 portType 接口的实例,以便我可以使用该接口与 Web 服务进行交互?

谢谢

4

1 回答 1

2

您真的不需要它来创建服务类来利用生成的存根。可以使用类似于以下内容的内容:

import org.apache.cxf.jaxws.JaxWsProxyFactoryBean;

...

protected <T> T getService(final Class<T> serviceClass, final boolean useSoap12) {
    final JaxWsProxyFactoryBean factory = new JaxWsProxyFactoryBean();
    factory.setServiceClass(serviceClass);
    factory.setAddress(endpoint);
    if (useSoap12) {
        factory.setBindingId("http://schemas.xmlsoap.org/wsdl/soap12/");
    }
    return serviceClass.cast(factory.create());
}

serviceClass带注释的接口 CXF 在哪里创建。

于 2013-03-11T23:51:24.373 回答