簡體   English   中英

“ javax.xml.ws.WebServiceException:不是有效的服務。”代理問題?

[英]“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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM