2013-03-11 81 views
1

我试图开发ONVIF一个客户端,它具有WSDL为:的Apache CXF wdsl2java代码生成无服务元素

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

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

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

谢谢

回答

1

你真的不需要它来创建一个服务类来利用生成的存根。它可以使用类似下面的东西:

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创建。