Java 向web服务发送xml消息时获取异常

Java 向web服务发送xml消息时获取异常,java,ssl,certificate,ssl-certificate,client-certificates,Java,Ssl,Certificate,Ssl Certificate,Client Certificates,这是我用来连接到web服务的代码,但我在发送消息时不断收到此异常 16:24:15186错误[stderr](DefaultQuartzScheduler\u Worker-5) java.net.ConnectException:操作超时16:24:15187错误 [stderr](DefaultQuartzScheduler\u-Worker-5)位于 java.net.PlainSocketImpl.socketConnect(本机方法)16:24:15187 错误[stderr](Def

这是我用来连接到web服务的代码,但我在发送消息时不断收到此异常

16:24:15186错误[stderr](DefaultQuartzScheduler\u Worker-5) java.net.ConnectException:操作超时16:24:15187错误 [stderr](DefaultQuartzScheduler\u-Worker-5)位于 java.net.PlainSocketImpl.socketConnect(本机方法)16:24:15187 错误[stderr](DefaultQuartzScheduler\u Worker-5)位于 java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:339) 16:24:15188错误[stderr](DefaultQuartzScheduler_-Worker-5)位于 java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:200) 16:24:15188错误[stderr](DefaultQuartzScheduler_-Worker-5)位于 java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:182) 16:24:15189错误[stderr](DefaultQuartzScheduler_-Worker-5)位于 net.socksocketimpl.connect(socksocketimpl.java:392) 16:24:15189错误[stderr](DefaultQuartzScheduler_-Worker-5)位于 java.net.Socket.connect(Socket.java:579)16:24:15190错误[stderr] (默认QuartzScheduler_-Worker-5)位于 sun.security.ssl.SSLSocketImpl.connect(SSLSocketImpl.java:618) 16:24:15197错误[stderr](DefaultQuartzScheduler\u Worker-5)位于 sun.security.ssl.BaseSSLSocketImpl.connect(BaseSSLSocketImpl.java:160) 16:24:15197错误[stderr](DefaultQuartzScheduler\u Worker-5)位于 sun.net.NetworkClient.doConnect(NetworkClient.java:180)16:24:15198 错误[stderr](DefaultQuartzScheduler\u Worker-5)位于 net.www.http.HttpClient.openServer(HttpClient.java:432) 16:24:15198错误[stderr](DefaultQuartzScheduler_-Worker-5)位于 net.www.http.HttpClient.openServer(HttpClient.java:527) 16:24:15198错误[stderr](DefaultQuartzScheduler_-Worker-5)位于 net.www.protocol.https.HttpsClient.(HttpsClient.java:275) 16:24:15199错误[stderr](DefaultQuartzScheduler_-Worker-5)位于 net.www.protocol.https.HttpsClient.New(HttpsClient.java:371) 16:24:15199错误[stderr](DefaultQuartzScheduler_-Worker-5)位于 sun.net.www.protocol.https.AbstractDelegateHttpsURLConnection.getNewHttpClient(AbstractDelegateHttpsURLConnection.java:191) 16:24:15200错误[stderr](DefaultQuartzScheduler_-Worker-5)位于 sun.net.www.protocol.http.HttpURLConnection.plainConnect(HttpURLConnection.java:932) 16:24:15202错误[stderr](DefaultQuartzScheduler_-Worker-5)位于 net.www.protocol.https.AbstractDelegateHttpsURLConnection.connect(AbstractDelegateHttpsURLConnection.java:177) 16:24:15202错误[stderr](DefaultQuartzScheduler_-Worker-5)位于 net.www.protocol.http.HttpURLConnection.getOutputStream(HttpURLConnection.java:1091) 16:24:15203错误[stderr](DefaultQuartzScheduler_-Worker-5)位于 net.www.protocol.https.HttpsURLConnectionImpl.getOutputStream(HttpsURLConnectionImpl.java:250) 16:24:15203错误[stderr](DefaultQuartzScheduler_-Worker-5)位于 hot.com.mhd.erp.action.client.PushStatusClient.pushXML(PushStatusClient.java:483) 16:24:15203错误[stderr](DefaultQuartzScheduler_-Worker-5)位于 main.com.mhd.erp.sched.StatusPushJob.execute(StatusPushJob.java:73) 16:24:15204错误[stderr](DefaultQuartzScheduler_-Worker-5)位于 org.quartz.core.JobRunShell.run(JobRunShell.java:202)16:24:15204 错误[stderr](DefaultQuartzScheduler\u Worker-5)位于 org.quartz.siml.SimpleThreadPool$WorkerThread.run(SimpleThreadPool.java:525)

提供web服务的公司向我提供了4个证书,我已将其导入密钥库“JKS”类型


请帮忙!抱歉第一次在stackoverflow中发布。java.net.ConnectException:操作超时似乎是因为您的internet连接速度慢,或者网络中有另一个元素阻止您连接到所需的站点。此外,您可以检查地址是否可用,如果地址已关闭,则根本不会有任何响应。谢谢您的响应!互联网连接很好很快,我在浏览器上输入了地址,它只是挂在连接上。这可能是因为证书问题吗?您是否有web客户端连接到需要证书的web服务的经验?您的证书似乎有问题,或者外部服务器刚刚挂起,无法关闭连接。如果您拥有此外部服务器,请检查可能存在的问题。如果来自第三方服务,请与他们联系,向他们解释这些问题,并寻求如何解决此连接问题的指导。拥有外部服务器的公司向我提供了url和4个证书,我将它们导入密钥库,并将其与密钥库密码一起设置到JVM,如上面的代码所示。奇怪的是,证书上没有给出错误,并且我成功地ping了它们的url
System.setProperty("javax.net.ssl.trustStore",ERPGetProperty.erpGetProperty("pathToKeyStore"));
System.setProperty("javax.net.ssl.trustStorePassword", "changeit");

SSLSocketFactory ssf = (SSLSocketFactory)SSLSocketFactory.getDefault();

URL url = new URL(address);
HttpsURLConnection con  = (HttpsURLConnection) url.openConnection();
con.setSSLSocketFactory(ssf);


con.setRequestMethod("POST");
con.setUseCaches(true);
con.setRequestProperty("Content-type", "text/xml");
con.setRequestProperty("Host", "pwspg.newcorp.com");
con.setRequestProperty("Content-Length", Integer.toString(xml.length()));
con.setRequestProperty("SOAPAction", address);
con.setDoOutput(true);
con.setDoInput(true);

userPass = username + ":" + password;
byte[] encodeBytes = Base64.encodeBase64(userPass.getBytes());
String encode = new String(encodeBytes);
con.setRequestProperty("Authorization", "Basic " + encode);

out = con.getOutputStream();