HTTP(S) Timeout while invoking WebService over HTTPS.
Tasja Mango
Greenhorn
Joined: Mar 03, 2004
Posts: 8
posted
0
Hello, I have some stress with my webservice client implementation. I do the following (I can post source code if needed): - As usual: System.setProperty("java.protocol.handler.pkgs","com.sun.net.ssl.internal.www.protocol"); Security.addProvider(new com.sun.net.ssl.internal.ssl.Provider()); - Install my TrustManager - Install my DefaultHostnameVerifier - Register a custom type - Make a javax.xml.rpc.Call to access a webservice My observations: The code works well when using an HTTP URL, just changing the target URL to HTTPS causes the problem. The HTTPS web service (on server) works well seeing a HTTPS client using the weblogic SSL implementation can easily connect. When I use a simple and direct "Open HttpsURLConnection on URL("https://xxx.service?WSDL"); print-out-all-that's-coming-in", it works well. I think my SSL access is made correctly. The client does not complain about not-installed SSL things, all certificates are accepted, etc. No problem at this part. System.setProperty("javax.net.debug", "all") is set, but i dont see anything of interrest. I use the packages contained in 'java_xml_pack-summer-02_01' of SUN (jaxm-1.1_01, jaxp-1.2_01,jaxr-1.0_02 etc and the jsse 1.0.3). No weblogic SSL stuff used. The server is weblogic 7. Calling call.setTargetEndpointAddress("http://arakis:7001/traces_ws/searchCertificate"); works well while call.setTargetEndpointAddress("https://arakis:7002/traces_ws/searchCertificate"); causes (after 2 minutes): HTTP transport error: java.net.SocketException: Unexpected end of file from server at com.sun.xml.rpc.client.http.HttpClientTransport.invoke(HttpClientTransport.java:189) at com.sun.xml.rpc.client.StreamingSender._send(StreamingSender.java:73) at com.sun.xml.rpc.client.dii.CallInvokerImpl.doInvoke(CallInvokerImpl.java:54) at com.sun.xml.rpc.client.dii.BasicCall.invoke(BasicCall.java:279) at SSLSOAPClient.main(SSLSOAPClient.java:264) CAUSE: java.net.SocketException: Unexpected end of file from server at sun.net.www.http.HttpClient.parseHTTPHeader(HttpClient.java:699) at sun.net.www.http.HttpClient.parseHTTP(HttpClient.java:604) at sun.net.www.http.HttpClient.parseHTTPHeader(HttpClient.java:697) at sun.net.www.http.HttpClient.parseHTTP(HttpClient.java:604) at com.sun.xml.rpc.client.http.handler.HttpURLConnection.getInputStream(HttpURLConnection.java:543) at com.sun.xml.rpc.client.http.handler.HttpURLConnection.getResponseCode(HttpURLConnection.java:920) at com.sun.xml.rpc.client.http.HttpClientTransport.invoke(HttpClientTransport.java:123) at com.sun.xml.rpc.client.StreamingSender._send(StreamingSender.java:73) at com.sun.xml.rpc.client.dii.CallInvokerImpl.doInvoke(CallInvokerImpl.java:54) at com.sun.xml.rpc.client.dii.BasicCall.invoke(BasicCall.java:279) at SSLSOAPClient.main(SSLSOAPClient.java:264) Exception in thread "main" What I note is that the call is using a HttpURLConnection object and NOT a HttpsURLConnection object (so problems are 'normal' i guess), but I dont have any clue what I have to do to instruct the client to use HTTPS other than specifying HTTPS in the target. Hope someone has an idea Tasha
Tasja Mango
Greenhorn
Joined: Mar 03, 2004
Posts: 8
posted
0
FYI, problem solved by updating to JDK 1.4 ... yeah!