4

HTTPClient 4.0 を使用してリモート サーバーに接続し、HTTPS を使用してファイルを転送しています。接続しようとすると、「java.net.SocketException: 接続されていないソケットが実装されていません」という例外が発生します。スタックトレースを見てください

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) 

HTTP クライアント 3.1 を使用しているときに同じエラーが見つかりました。

私の環境 アプリケーション サーバー : Websphere アプリケーション サーバー 6.1.0.23 Java : JDK 1.5.0.16

4

2 に答える 2

1

実際、suppressingfire よりも完全な答えは

  1. com.ibm.ws.admin.client_7.0.0.jar を Java ビルドに追加します。

    これで解決java.lang.NoClassDefFoundError: com.ibm.ffdc.Manager error

  2. セットアップに追加:

    import java.security.Security;
    ...
    Security.setProperty("ssl.SocketFactory.provider", "com.ibm.jsse2.SSLSocketFactoryImpl");
    

    これにより、Cannot find the specified class com.ibm.websphere.ssl.protocol.SSLSocketFactory

于 2011-01-29T01:05:28.190 に答える
0

javax.net.debug を有効にすると、欠落しているクラス com.ibm.websphere.com.ibm.websphere.ssl.protocol.SSLSocketFactory があることに気付きました。

httpclient を呼び出す単体テストで問題が発生しました。私がやったことは、この行を TestClass.setUp() に追加することでした

Security.setProperty("ssl.SocketFactory.provider", "com.ibm.jsse2.SSLSocketFactoryImpl");
于 2009-12-08T17:03:46.697 に答える