Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ssl/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
HTTPClient-java.net.SocketException:未实现未连接的套接字_Java_Ssl_Websphere_Httpclient - Fatal编程技术网

HTTPClient-java.net.SocketException:未实现未连接的套接字

HTTPClient-java.net.SocketException:未实现未连接的套接字,java,ssl,websphere,httpclient,Java,Ssl,Websphere,Httpclient,Iam使用HTTPClient 4.0连接远程服务器并使用HTTPS传输文件。 当我尝试连接时,出现异常“java.net.SocketException:Unconnected sockets not implemented”。 请查看堆栈跟踪 java.net.SocketException: Unconnected sockets not implemented at java.lang.Throwable.<init>(Throwable.java:196) at jav

Iam使用HTTPClient 4.0连接远程服务器并使用HTTPS传输文件。 当我尝试连接时,出现异常“java.net.SocketException:Unconnected sockets not implemented”。 请查看堆栈跟踪

java.net.SocketException: Unconnected sockets not implemented 
at java.lang.Throwable.<init>(Throwable.java:196) 
at java.lang.Exception.<init>(Exception.java:41) 
at java.io.IOException.<init>(IOException.java:40) 
at java.net.SocketException.<init>(SocketException.java:29) 
at javax.net.SocketFactory.createSocket(SocketFactory.java:2) 
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) 
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) 
at java.lang.reflect.Method.invoke(Method.java:585) 
at org.apache.commons.httpclient.protocol.ReflectionSocketFactory.createSocket(Unknown Source) 
at org.apache.commons.httpclient.protocol.SSLProtocolSocketFactory.createSocket(Unknown Source) 
at org.apache.commons.httpclient.HttpConnection.open(Unknown Source) 
at org.apache.commons.httpclient.HttpMethodDirector.executeWithRetry(Unknown Source) 
at org.apache.commons.httpclient.HttpMethodDirector.executeMethod(Unknown Source) 
at org.apache.commons.httpclient.HttpClient.executeMethod(Unknown Source) 
at org.apache.commons.httpclient.HttpClient.executeMethod(Unknown Source) 
at co.com.personalsoft.ftpseguro.utilidades.TransmisionHTTP.ejecutarTransmisionHTTP(TransmisionHTTP.java:107) 
at co.com.personalsoft.ftpseguro.utilidades.TransmisionFTPNew.ejecutarTransmisionAuto(TransmisionFTPNew.java:483) 
at co.com.personalsoft.ftpseguro.utilidades.TransmisionFTPNew.ejecutarTransmision(TransmisionFTPNew.java:1016) 
at co.com.personalsoft.ftpautomatico.ConexionThread.run(ConexionThread.java:58) 
at java.lang.Thread.run(Thread.java:595) 
java.net.SocketException:未实现未连接的套接字
位于java.lang.Throwable。(Throwable.java:196)
位于java.lang.Exception。(Exception.java:41)
在java.io.IOException.(IOException.java:40)
位于java.net.SocketException。(SocketException.java:29)
在javax.net.SocketFactory.createSocket(SocketFactory.java:2)
位于sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
在sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)中
位于java.lang.reflect.Method.invoke(Method.java:585)
位于org.apache.commons.httpclient.protocol.ReflectionSocketFactory.createSocket(未知源)
位于org.apache.commons.httpclient.protocol.SSLProtocolSocketFactory.createSocket(未知源)
位于org.apache.commons.httpclient.HttpConnection.open(未知源代码)
位于org.apache.commons.httpclient.HttpMethodDirector.executeWithRetry(未知源)
位于org.apache.commons.httpclient.HttpMethodDirector.executeMethod(未知源)
位于org.apache.commons.httpclient.httpclient.executeMethod(未知源)
位于org.apache.commons.httpclient.httpclient.executeMethod(未知源)
在co.com.personalsoft.ftpseguro.utilidades.TransmisionHTTP.ejecurtartransmisionhttp(TransmisionHTTP.java:107)上
在co.com.personalsoft.ftpseguro.utilidades.TransmisionFTPNew.ejecurtartransmisionauto(TransmisionFTPNew.java:483)上
在co.com.personalsoft.ftpseguro.utilidades.TransmisionFTPNew.ejecurtartransmision(TransmisionFTPNew.java:1016)上
位于co.com.personalsoft.ftpautomatico.ConexionThread.run(ConexionThread.java:58)
运行(Thread.java:595)
使用HTTP客户端3.1时发现相同的错误

我的环境 应用服务器:WebSphereApplicationServer6.1.0.23
Java:JDK 1.5.0.16

启用javax.net.debug时,我注意到缺少一个类com.ibm.websphere.com.ibm.websphere.ssl.protocol.SSLSocketFactory

我在调用httpclient的单元测试中遇到了问题。我最后做的是将这一行添加到我的TestClass.setUp()中


实际上,一个比灭火更完整的答案是

  • 将com.ibm.ws.admin.client_7.0.0.jar添加到java构建中

    这解决了
    java.lang.NoClassDefFoundError:com.ibm.ffdc.Manager错误

  • 添加到安装程序:

    import java.security.Security;
    ...
    Security.setProperty("ssl.SocketFactory.provider", "com.ibm.jsse2.SSLSocketFactoryImpl");
    
    这解决了
    找不到指定类com.ibm.websphere.ssl.protocol.SSLSocketFactory的问题


  • 它在websphere之外工作吗?也许websphere取代了套接字工厂?这在websphere application server 5.1中起作用。错误只在WAS 6.1中发现。我在RAD 7.0和WAS 6.1测试环境中看到了这一点。当我使用最新的JDK启动它时,同样的代码也可以工作,但是WAS6.1测试环境中使用的任何版本都会失败。它似乎与特定的JDK版本有关:和
    import java.security.Security;
    ...
    Security.setProperty("ssl.SocketFactory.provider", "com.ibm.jsse2.SSLSocketFactoryImpl");