Java WebSphere+;简单HTTPS Post=SocketException

Java WebSphere+;简单HTTPS Post=SocketException,java,http,ssl,websphere,Java,Http,Ssl,Websphere,这是我能做的最基本的设置-RAD中的全新设置、全新项目、所有默认设置和以下代码: try { String url = "https://www.verisign.com"; HttpClient client = new HttpClient(); PostMethod post = new PostMethod(url); client.executeMethod(post); String re

这是我能做的最基本的设置-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();

    }
这是我得到的错误(信息量不大,imho)

有什么想法可以让我得到一个更具描述性的错误吗

更新

当我查看“runtimes\base\u 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)
com.ibm.websphere.ssl.SSLException:java.io.IOException:DerInputStream.getLength():lengthTag=127,太大。
位于com.ibm.websphere.ssl.JSSEHelper.getSSLSocketFactory(JSSEHelper.java:583)
位于com.ibm.websphere.ssl.protocol.SSLSocketFactory.(SSLSocketFactory.java:87)
位于java.lang.Class.newInstanceImpl(本机方法)
位于java.lang.Class.newInstance(Class.java:1243)
位于javax.net.ssl.SSLSocketFactory.getDefault(SSLSocketFactory.java:9)
位于org.apache.commons.httpclient.protocol.SSLProtocolSocketFactory.createSocket(SSLProtocolSocketFactory.java:93)
位于org.apache.commons.httpclient.HttpConnection.open(HttpConnection.java:651)
位于org.apache.commons.httpclient.httpclient.executeMethod(httpclient.java:628)
位于org.apache.commons.httpclient.httpclient.executeMethod(httpclient.java:497)
更新-与答案 修正,这是一个有趣的问题,下面是你如何解决它(如果你遇到过)

步骤1:在\SDP70\jdk\jre\bin中启动ikeyman.exe

步骤2:在SDP70\runtimes\base\u v61\java\jre\lib\security中打开证书文件(例如,我的是cacerts)

第三步:输入你的密码(你记得你的密码吗)

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

步骤5:将证书文件保存为pks12

步骤6:停止Websphere

步骤7:将旧证书文件重命名为类似“cacerts.bak”的内容将新PKS12证书文件重命名为默认文件

步骤8:重新启动websphere,获取合法错误


步骤9:Profit

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

要么使用合适的日志框架(如log4j或slf4j)来完成这项工作,要么可以手动完成

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

嘿,爸爸,谢谢你的快速回复,不幸的是,这是深的兔子洞去。e、 getCause()在第一个请求时返回null,并且从不进入while语句。toString()在异常时给出了什么?
e.printStackTrace();
Throwable cause = e.getCause();
while (cause != null) {
    cause.printStackTrace();
    cause = cause.getCause();
}