2012-11-23 30 views
1

我正在使用jax-ws發起一個動態WS調用。javax.xml.ws.WebServiceException:不是有效的端口

但我不能創建調度,代碼:

String namespace= "http://wsf.cdyne.com/WeatherWS/Weather.asmx"; 
try { 
    QName serviceName = new QName(namespace, "GetCityForecastByZIP"); 
    Service s = Service.create(serviceName); 
    QName portName = new QName(namespace, "WeatherSoap12"); 
    Dispatch<DOMSource> dispatch = s.createDispatch(portName, 
                DOMSource.class, 
                Service.Mode.PAYLOAD); 
... 

的錯誤是 javax.xml.ws.WebServiceException:{http://wsf.cdyne.com/WeatherWS/Weather .asmx} WeatherSoap12不是有效的端口。有效的端口是:

我已將csct WSDL的http://wsf.cdyne.com/WeatherWS/Weather.asmx?WSDL,我無法確定錯誤的原因。

任何幫助?

+0

web服務地址與wsdl中的名稱空間聲明不同。 'http:// wsf.cdyne.com/WeatherWS/Weather.asmx'不是那個ws的命名空間,它是web服務地址。 'namespace'應設置爲'http:// ws.cdyne.com/WeatherWS' – kolossus

+0

使用http://ws.cdyne.com/WeatherWS的同樣錯誤,我很困惑 –

+0

用作參考的示例不完整。 我需要將端口添加到服務器 s.addPort(portName,SOAPBinding.SOAP12HTTP_BINDING,WSDL_ENDPOINT_URL); –

回答

1

已解決。使用的示例代碼不完整,我需要將端口添加到服務器

s.addPort(portName, SOAPBinding.SOAP12HTTP_BINDING, WSDL_ENDPOINT_URL); 
+0

真棒。謝謝!奇怪的是這裏沒有其他人... – tom

相關問題