作爲一個前提,我還不是很有經驗,但我試圖閱讀和搜索我可能會涉及到這個話題的所有事情,但仍然沒有運氣。「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","*");
(順便說一句,「*」,這我理解它應該作爲通配符工作「每個域名」,我也試過指定具體的域名) 無論如何,結果總是一樣的。
有什麼我做錯了,剩下的東西試試嗎?
我編輯了這個問題來展示我如何創建客戶端。 至於的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 ' –
嘗試使用http://cert.controller.portaApplicativa.ictechnology.it/而不是http://namespace.it/。 – AdityaKeyal
呃,我真的是,我要改變所有實際的命名空間,服務名稱等等,因爲我是沒有意識到我能或不能公開,我錯過了那一個,在這一點上,讓我在我的問題中改變它,對於混淆抱歉。(忘記我不能編輯評論,而不是) –