我在SAAJ其成功的作品寫的Java客戶端通過HTTP發送SOAP消息時,但是當我嘗試通過HTTPS發送任何SOAP消息發送到Web服務,需要一個客戶端證書它不工作。用SAAJ
在頁面通過以下鏈接的底部 - SAAJ Security - 它規定如下:
從SAAJ方面,所有你需要做的是使用的URL使用HTTPS作爲協議。這隻有在證書被成功導入到/ jre/lib/security/cacerts時纔有效;否則JSSE將不允許連接
我引進的具有相關的根證書以及客戶端證書到我的Java cacerts中的指示,以使上面做,運行該程序,但是我得到以下錯誤:
java.net.SocketException: Connection reset
我在流量上運行了一個wireshark跟蹤,並注意到當Java代碼被服務器要求時沒有呈現客戶端證書,因此我有以下問題:
1)通過僅將HTTPS URL傳遞給soapConnection .call()方法以及導入cer ts到我的cacerts文件,這足以讓身份驗證發生,即SAAJ是否自動處理?或者是否有更多步驟需要在上述鏈接中描述?
2)通過導入證書到我的JAVA_HOME內cacerts文件,並在Java SAAJ客戶端會自動知道在這裏可以調用soapConnection.call()的時候?或者我需要明確告訴我的代碼使用什麼cacerts文件?
3)如果Java客戶端SAAJ自動使用cacerts文件我JAVA_HOME下那麼它是如何知道使用什麼客戶端證書?同樣,我是否需要明確地編碼或者SAAJ是否自動處理?
在此先感謝