gpt4 book ai didi

java - WebSphere + 简单的 HTTPS Post = SocketException

转载 作者:太空宇宙 更新时间:2023-11-03 15:06:32 25 4
gpt4 key购买 nike

这是我所能做到的最基本的——RAD 中全新的设置、全新的项目、所有默认设置和这段代码:

        try {
String url = "https://www.verisign.com";
HttpClient client = new HttpClient();
PostMethod post = new PostMethod(url);
client.executeMethod(post);
String response2 = post.getResponseBodyAsString();

} catch (Exception e) {
e.printStackTrace();

}

这是我得到的错误(恕我直言,信息量不大)

    java.net.SocketException
at javax.net.ssl.DefaultSSLSocketFactory.createSocket(SSLSocketFactory.java:5)
at org.apache.commons.httpclient.protocol.SSLProtocolSocketFactory.createSocket(SSLProtocolSocketFactory.java:93)
at org.apache.commons.httpclient.HttpConnection.open(HttpConnection.java:651)
at org.apache.commons.httpclient.HttpClient.executeMethod(HttpClient.java:628)
at org.apache.commons.httpclient.HttpClient.executeMethod(HttpClient.java:497)

关于我可以尝试获得更具描述性的错误的任何想法?

更新

当我查看“runtimes\base_v61\profiles\AppSrv01\logs\ffdc”时,我发现这个错误被打印到日志中:

com.ibm.websphere.ssl.SSLException: java.io.IOException: DerInputStream.getLength(): lengthTag=127, too big.
at com.ibm.websphere.ssl.JSSEHelper.getSSLSocketFactory(JSSEHelper.java:583)
at com.ibm.websphere.ssl.protocol.SSLSocketFactory.<init>(SSLSocketFactory.java:87)
at java.lang.Class.newInstanceImpl(Native Method)
at java.lang.Class.newInstance(Class.java:1243)
at javax.net.ssl.SSLSocketFactory.getDefault(SSLSocketFactory.java:9)
at org.apache.commons.httpclient.protocol.SSLProtocolSocketFactory.createSocket(SSLProtocolSocketFactory.java:93)
at org.apache.commons.httpclient.HttpConnection.open(HttpConnection.java:651)
at org.apache.commons.httpclient.HttpClient.executeMethod(HttpClient.java:628)
at org.apache.commons.httpclient.HttpClient.executeMethod(HttpClient.java:497)

更新 - 有了答案已修复,这是一个有趣的问题,下面是您如何解决它(如果您曾经遇到过)

第一步:启动\SDP70\jdk\jre\bin中的ikeyman.exe

第二步:在SDP70\runtimes\base_v61\java\jre\lib\security打开你的certs文件(比如我的是cacerts)

第 3 步:输入您的密码(您还记得密码吗)?

第 4 步:如果数据库类型不是 PKS12,则继续

第 5 步:将您的证书文件另存为 pks12

第 6 步:停止 Websphere

第 7 步:将您的旧证书文件重命名为类似“cacerts.bak”的名称,将您的新 PKS12 证书文件重命名为默认文件

第八步:重启websphere,出现合法错误

第 9 步:利润

最佳答案

您需要的是导致此异常(“内部”异常)的信息和异常堆栈。 printStackTrace() 不会将这些打印出来。

要么使用适当的日志记录框架(如 log4j 或 slf4j)为您执行此操作,要么您可以手动执行。

e.printStackTrace();
Throwable cause = e.getCause();
while (cause != null) {
cause.printStackTrace();
cause = cause.getCause();
}

关于java - WebSphere + 简单的 HTTPS Post = SocketException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7205907/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com