在我开发的,当尝试使用JAX-WS我得到了连接超时异常调用肥皂WS我的JAR客户,我想知道什么可以导致该异常的原因。 我使用的是远程WSDL和服务器证书必须在VM参数运行HTTPS。
-Djavax.net.debug=all
-Djavax.net.ssl.trustStore=link to my certifacte
我怎样才能用这个参数运行? 通过增加他们eclipse.ini文件? 谢谢你的帮助。
在我开发的,当尝试使用JAX-WS我得到了连接超时异常调用肥皂WS我的JAR客户,我想知道什么可以导致该异常的原因。 我使用的是远程WSDL和服务器证书必须在VM参数运行HTTPS。
-Djavax.net.debug=all
-Djavax.net.ssl.trustStore=link to my certifacte
我怎样才能用这个参数运行? 通过增加他们eclipse.ini文件? 谢谢你的帮助。
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。
添加附加的故障排除的答案。 一个伟大的方式来测试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();
}
}
}
如果一切正常,你会得到“连接成功”