2 回答

TA貢獻1818條經驗 獲得超7個贊
添加額外的故障排除答案。測試 SSL 連接的好方法。
import javax.net.ssl.SSLSocket;
import javax.net.ssl.SSLSocketFactory;
import java.io.*;
/** Establish a SSL connection to a host and port, writes a byte and
* prints the response. See
* http://confluence.atlassian.com/display/JIRA/Connecting+to+SSL+services
*
* JGlass: Code modified for SO to hard code the host and port
*
*/
public class SSLPoke {
public static void main(String[] args) {
//add the full FQDN to the host here
String host = "google.com";
//your port may be 443
int port = 8443;
try {
SSLSocketFactory sslsocketfactory = (SSLSocketFactory) SSLSocketFactory.getDefault();
SSLSocket sslsocket = (SSLSocket) sslsocketfactory.createSocket(host, port);
InputStream in = sslsocket.getInputStream();
OutputStream out = sslsocket.getOutputStream();
// Write a test byte to get a reaction :)
out.write(1);
while (in.available() > 0) {
System.out.print(in.read());
}
System.out.println("Successfully connected");
} catch (Exception exception) {
exception.printStackTrace();
}
}
}
如果一切正常,您將獲得“成功連接”

TA貢獻1802條經驗 獲得超5個贊
1. 從 Project Explorer 窗格中選擇您的項目,通常在左側 2. 從 Run 菜單中,根據您是要運行它還是調試它,單擊 Run 或 Debug 3. 在左窗格中,選擇“Java Application and右鍵單擊并單擊“新建” 4. 由于您已經選擇了您的項目并且它包含一個“主”類,因此它將默認運行/調試配置“名稱”為類名。如果您有多個 Main,則可能需要單擊“搜索”按鈕或手動輸入包路徑和類名5. 在“VM 參數”下輸入您的參數,如圖所示6. 單擊“應用”,或者單擊“應用”和“運行”(如果需要)立即運行
一些注意事項,您可能需要密鑰庫的完整路徑,例如:
-Djavax.net.ssl.trustStore=C:\ADirectory\AnotherDirectory\FinalDirectoryThatContainsYourKeystore\TrustStore.jks
-Djavax.net.debug=all- 將打開大量調試,如果您不習慣閱讀它,可能會令人困惑。如果連接正常,請刪除該行。如果連接不起作用 - 那就是所有調試有用的時候。
更新:為了進一步解決 HTTP 連接問題,當它的核心是 SOAP 請求時,暫時刪除-Djavax.net.debug=all并添加以下內容:
-Dcom.sun.xml.ws.transport.http.client.HttpTransportPipe.dump=true
-Dcom.sun.xml.ws.transport.http.HttpAdapter.dump=true
-Dcom.sun.xml.internal.ws.transport.http.client.HttpTransportPipe.dump=true
-Dcom.sun.xml.internal.ws.transport.http.HttpAdapter.dump=true
這將顯示 HTTP 標頭、響應代碼、請求和響應正文內容。它還將顯示您嘗試連接的 URL。
添加回答
舉報