[英]“javax.xml.ws.WebServiceException: is not a valid service.” proxy issue?
作為前提,我還沒有很豐富的經驗,但是我已經嘗試閱讀和搜索與該主題相關的一切內容,但仍然沒有運氣。
我得到了一個簡單的客戶端來調用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","*");
(順便說一句,在“ *”之前,據我所知它應該用作“每個域”的通配符,我也嘗試過指定特定域)。無論如何,結果始終是相同的。
我在做錯什么嗎,還有什么可以嘗試的?
我懷疑這是一個代理問題。 如果可以共享用於創建Service對象的代碼,則可能會有所幫助。
首先,嘗試閱讀以下主題
在JAX-WS中不是有效的服務異常
我認為您在創建服務時提供的QName不正確。 為了獲得正確的QName,您可以嘗試打開生成的存根。
事實證明,我所缺少的是在本地信任庫中導入證書(或者更好的是,當我第一次嘗試這樣做時,我以為我使用的是正確的信任庫,但是沒有)。
對於可能需要它的任何人,以下是如何使用keytool進行說明: http : //javarevisited.blogspot.it/2012/03/add-list-certficates-java-keystore.html
另一種選擇是使用特定的GUI,例如Portecle。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.