HTTP传输错误:java.net.ConnectException:连接超时:连接在肥皂WS客户端

2019-09-29 10:10发布

在我开发的,当尝试使用JAX-WS我得到了连接超时异常调用肥皂WS我的JAR客户,我想知道什么可以导致该异常的原因。 我使用的是远程WSDL和服务器证书必须在VM参数运行HTTPS。

   -Djavax.net.debug=all
   -Djavax.net.ssl.trustStore=link to my certifacte

我怎样才能用这个参数运行? 通过增加他们eclipse.ini文件? 谢谢你的帮助。

Answer 1:

1.选择您从Project Explorer面板项目,一般在左边

2.从运行菜单,这取决于你是否只想运行或调试它单击运行或调试

3.在左窗格中,选择“Java应用程序,并单击鼠标右键,然后单击新建”

4.既然你已经选择了您的项目,它包含了一个“主”级,将默认运行/调试配置“名称”为类名。 如果你有多个主的,你可能需要单击搜索按钮或手动键入包路径和类名

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。



Answer 2:

添加附加的故障排除的答案。 一个伟大的方式来测试SSL连接。 来源: 4ndrej真棒SSL戳GitHub的例子

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();
        }
    }
}


如果一切正常,你会得到“连接成功”



文章来源: HTTP transport error: java.net.ConnectException: Connection timed out: connect in Soap ws client