2014-04-23 58 views
0

作爲一個前提,我還不是很有經驗,但我試圖閱讀和搜索我可能會涉及到這個話題的所有事情,但仍然沒有運氣。「javax.xml.ws.WebServiceException:不是有效的服務」。代理問題?

我得到了一個簡單的客戶端調用web服務,但一旦它完全安裝(其中包括使用證書和一對夫婦更多的屬性來設置的),我在標題中提到的錯誤:

javax.xml.ws.WebServiceException: {http://http://cert.controller.portaapplicativa.ictechnology.it//}MyService is not a valid service. Valid services are: 
    at com.sun.xml.ws.client.WSServiceDelegate.<init>(WSServiceDelegate.java:187) 
    at com.sun.xml.ws.client.WSServiceDelegate.<init>(WSServiceDelegate.java:159) 
    at com.sun.xml.ws.spi.ProviderImpl.createServiceDelegate(ProviderImpl.java:82) 
    at javax.xml.ws.Service.<init>(Service.java:56) 
    at package.client.wsimport.MyService..<init>(MyService.java:46) 
    at package.client.Client.doRicercaDEN(Client.java:55) 
    at package.client.Client.main(Client.java:36) 

我試圖與JAX-WS再次生成客戶端:

java -classpath C:\Programmi\Java\jdk1.6.0_38\lib\tools.jar com.sun.tools.internal.ws.WsImport -verbose C:\WsdlFile.wsdl -p package.client.wsimport -s C:\tmp\ws\ 

我也得到了同樣的問題。我正在使用wsdl的本地副本,因爲wsimport似乎不喜歡我要在屬性中設置的證書(我很可能做錯了某些事情,但我選擇了簡單的解決方法,因爲我有更多緊迫問題)。

試圖使用SoapUI來測試服務,一切工作正常,但我需要將代理的首選項設置爲「無」。

所以,我想,以確保連接不會在我的客戶端使用任何代理,以及:之前

(...) 
systemSettings.remove("http.proxyHost"); 
systemSettings.remove("http.proxyPort"); 
systemSettings.remove("https.proxyHost"); 
systemSettings.remove("https.proxyPort"); 
System.setProperty("http.nonProxyHosts","*"); 
System.setProperty("https.nonProxyHosts","*"); 

(順便說一句,「*」,這我理解它應該作爲通配符工作「每個域名」,我也試過指定具體的域名) 無論如何,結果總是一樣的。

有什麼我做錯了,剩下的東西試試嗎?

回答

0

我懷疑這是一個代理問題。如果你可以共享你用來創建服務對象的代碼,它可能會有所幫助。
作爲一個開始嘗試讀取下面的線程
Is not a valid service exception in JAX-WS
我認爲你創建服務時提供的QName是不正確的。要獲得正確的QName,您可以嘗試打開生成的存根。

+0

我編輯了這個問題來展示我如何創建客戶端。 至於的QName: '公共爲MyService(){ \t超級(MYSERVICE_WSDL_LOCATION,新QName( 「http://namespace.it/」, 「爲MyService」)); }' \t MYSERVICE_WSDL_LOCATION是實際的WSDL URL, 爲MyService來自 '<服務名稱= 「爲MyService」>' http://namespace.it/是從 '<定義[...]的targetNamespace =「HTTP://cert.controller.portaApplicativa.ictechnology。它/ 「>' 和 ' \t ' –

+0

嘗試使用http://cert.controller.portaApplicativa.ictechnology.it/而不是http://namespace.it/。 – AdityaKeyal

+0

呃,我真的是,我要改變所有實際的命名空間,服務名稱等等,因爲我是沒有意識到我能或不能公開,我錯過了那一個,在這一點上,讓我在我的問題中改變它,對於混淆抱歉。(忘記我不能編輯評論,而不是) –

相關問題