2012-09-19 71 views
3

我可以生成從如何從https地址的wsdl在Eclipse中生成Web服務客戶端?

http://localhost:8080/service?wsdl 

就好了一個客戶,但現在我想從

https://localhost:8081/service?wsdl 

生成客戶端和Eclipse說位置是無效的,而當Eclipse使嘗試我的碼頭服務器說

javax.net.ssl.SSLException:收到致命警報:certificate_unknown

我可以很容易地navig在確認安全異常後,在我的瀏覽器中進入wsdl,所以它絕對存在。

我試過將wsdl下載到我的本地文件系統,但我仍然無法從那裏生成它,因爲wsdl包含對其他https位置的引用,例如。

<xsd:import namespace="http://my.service.namespace/" schemaLocation="https://localhost:8081/serviceSchema?xsd=1"/> 

我修改的eclipse.ini包含以下行:

-Djavax.net.ssl.trustStore="/path/to/my/truststore/.keystore" 
-Djavax.net.ssl.trustStorePassword="mytruststorepassword" 
-Djavax.net.ssl.keyStore="/path/to/my/keystore/.keystore" 
-Djavax.net.ssl.keyStorePassword="mykeystorepassword" 

無濟於事。 Eclipse似乎沒有任何與此相關的偏好設置。有沒有辦法通過eclipse做到這一點,或者我將不得不使用一些外部工具?

編輯: 對於其他同樣的問題,這是我如何解決它。

  1. 導航到瀏覽器中的wsdl,並將其下載到您的文件系統。
  2. 找到它依賴的任何東西,並下載它。
  3. 打開你剛剛用瀏覽器下載的依賴關係,並複製它的新位置,例如。

    文件:///path/to/my/schema/service.xsd

  4. 粘貼到您下載的WSDL文件,其中它的https地址,重複任何其他的模式,並保存。
  5. 複製上述wsdl文件的文件位置,如上
  6. 在Eclipse中,生成New-> Other ...-> Web Service Client並將文件位置粘貼到服務定義中,並且它應該可以工作。感謝大家的幫助!
+0

你應該下載WSDL和所有工件(如XSD)它所依賴。修改架構位置並生成客戶端...不要忘記將這些WSDL添加到您的版本控制系統(這是您的合同) – home

+0

但是如果我修改架構位置,客戶端不會錯誤地生成? –

+0

爲什麼?您應該始終在您的代碼中設置端點地址......其他所有內容僅適用於「hello world」應用程序。在現實世界中,您可能有不同的端點地址用於生產,分段,測試等。 – home

回答

1

將wsdl保存到您的本地文件系統並從那裏生成,它似乎是Eclipse的一個錯誤,並且請檢查this鏈接。

+0

我試過了,編輯我的文章反映,對不起。 –

+0

如果您還保存任何依賴關係(模式),這可以工作,謝謝。 –

2

我有同樣的問題,並從接受的答案,我不工作的聯繫,但我使用以下步驟生成的服務:

  1. 保存WSDL爲本地文件。 (如myService.wsdl)
  2. 將wsdl文件複製到項目中。
  3. 右鍵單擊WSDL文件 - > [Web服務] - > [生成客戶端]
相關問題