2013-03-11 30 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創建。

相關問題