我是web服務新手,我需要編寫簡單的spring-ws客戶端,它將通過SSL與服務器通信。這種情況是:帶證書的Spring-WS客戶端
- 我的客戶以http效果很好我的本地WS在我的GlassFish服務器上(問題是遠程服務器和HTTPS)
- 遠程服務器正常工作。我將與數據只是工作,它向我發送
- 我有服務器的HTTPS解決
- 我有一個從服務器提供商
我認爲這將是很容易找到這樣的任務,但我一個簡單的教程客戶端證書有問題找到這樣的事情。這真的很不尋常或者是我的問題嗎?你知道一些很好的教程/書來創建它嗎?這可能是一些簡單的快速步驟,我只需要連接到該服務器並從中獲取數據。
我使用:
- STS 3.0.0.M3
- JDK 1.7
- 客戶端作爲Java應用程序(後來可能是因爲動態Web應用程序),從服務器的WSDL
- 生成的類(JAXB )
- 我folowed本教程創建我的客戶http://justcompiled.blogspot.sk/2010/11/web-service-client-with-spring-ws.html
編輯:的話題
更多細節我改變從教程中,我提到我的web服務我在本地主機(無SSL)創建工作的客戶端。它運行良好,請求和響應是正確的。然後我改變它與遠程服務器一起工作。我生成了新的類並在ApplicationContext中設置了服務器的新地址。第一個錯誤是缺少commons-logging庫。我添加了它。然後,新的錯誤appeard(短該錯誤的版本):
org.springframework.ws.client.WebServiceIOException: I/O error: java.security.cert.CertificateException: No name matching certificatename found; nested exception is javax.net.ssl.SSLHandshakeException: java.security.cert.CertificateException: No name matching certificatename found
我使用密鑰工具加到我的證書到cacerts中在我的JDK。它沒有幫助。我發現一些有關這個錯誤,並試圖從去年後在這裏添加代碼:
http://www.coderanch.com/t/557677/sockets/java/CertificateException-No-name-matching-hostname
它不應該是很安全的,但我想它。新的錯誤是:
Exception in thread "main" org.springframework.ws.client.WebServiceTransportException: Internal Server Error [500]
at org.springframework.ws.client.core.WebServiceTemplate.handleError(WebServiceTemplate.java:663)
at org.springframework.ws.client.core.WebServiceTemplate.doSendAndReceive(WebServiceTemplate.java:587)
at org.springframework.ws.client.core.WebServiceTemplate.sendAndReceive(WebServiceTemplate.java:537)
at org.springframework.ws.client.core.WebServiceTemplate.marshalSendAndReceive(WebServiceTemplate.java:384)
at org.springframework.ws.client.core.WebServiceTemplate.marshalSendAndReceive(WebServiceTemplate.java:378)
...
您需要提供有關您觀察到的例外/錯誤的更多詳細信息。 – helios
您是使用自簽名證書還是從證書頒發機構獲取? – MarkOfHall
證書是自簽名的。實際上,我們現在正在密切關注提供商提供的證書,證書已從服務器IP中存儲了不同的IP。其實我們有2臺遠程服務器(測試服務器和官方),他們給我們可能錯誤的測試證書。我會嘗試連接到正確的併發布結果 – Miroslav