You are viewing a plain text version of this content. The canonical link for it is here.
Posted to soap-user@ws.apache.org by Mike Spreitzer <ms...@us.ibm.com> on 2001/01/08 23:49:50 UTC

TcpTunnelGui stalling calls on RedHat Linux 6.2 with IBM Java 1.3

I'm seeing SOAP's TcpTunnelGui stalling calls; has anyone else seen (or 
better yet, fixed) anything like this?

I see this with both the IBM SOAP 1.2 and the Apache SOAP 2.0 version of 
the TcpTunnelGui.  I'm testing with an IBM SOAP 1.2 server running in a 
standalone-mode Tomcat 3.2.1; the client is the IBM SOAP 1.2 version of 
the ServiceManagerClient.

The problem seems to be that the TCP connection closure doesn't propagate 
across the TcpTunnelGui.  I can make it propagate by ^Z'ing the 
TcpTunnelGui!

For example, using the Apache SOAP 2.0 version of TcpTunnelGui, I set up a 
TcpTunnelGui like this:
wat-eu-2$ java org.apache.soap.util.net.TcpTunnelGui 8080 alphaspreit 8080

In another shell, I watch for packets like this:
wat-eu-2# tcpdump port 8080
Kernel filter, protocol ALL, datagram packet socket
tcpdump: listening on all devices

In another shell, I make a call like this:
wat-eu-2$ java com.ibm.soap.server.ServiceManagerClient 
http://wat-eu-2:8080/soap/rpcrouter.jsp list

In the tcpdump window, I get this output:
17:34:14.870389   lo > wat-eu-2.watson.ibm.com.1126 > 
wat-eu-2.watson.ibm.com.8080: S 4024758940:4024758940(0) win 31072 <mss 
3884,sackOK,timestamp 1797407 0,nop,wscale 0> (DF)
17:34:14.870389   lo < wat-eu-2.watson.ibm.com.1126 > 
wat-eu-2.watson.ibm.com.8080: S 4024758940:4024758940(0) win 31072 <mss 
3884,sackOK,timestamp 1797407 0,nop,wscale 0> (DF)
17:34:14.870438   lo > wat-eu-2.watson.ibm.com.8080 > 
wat-eu-2.watson.ibm.com.1126: S 4023876348:4023876348(0) ack 4024758941 
win 31072 <mss 3884,sackOK,timestamp 1797407 1797407,nop,wscale 0> (DF)
17:34:14.870438   lo < wat-eu-2.watson.ibm.com.8080 > 
wat-eu-2.watson.ibm.com.1126: S 4023876348:4023876348(0) ack 4024758941 
win 31072 <mss 3884,sackOK,timestamp 1797407 1797407,nop,wscale 0> (DF)
17:34:14.870458   lo > wat-eu-2.watson.ibm.com.1126 > 
wat-eu-2.watson.ibm.com.8080: . 1:1(0) ack 1 win 31072 <nop,nop,timestamp 
1797407 1797407> (DF)
17:34:14.870458   lo < wat-eu-2.watson.ibm.com.1126 > 
wat-eu-2.watson.ibm.com.8080: . 1:1(0) ack 1 win 31072 <nop,nop,timestamp 
1797407 1797407> (DF)
17:34:14.877958  tr0 > wat-eu-2.watson.ibm.com.1127 > 
alphaspreit.watson.ibm.com.8080: S 4018469395:4018469395(0) win 31360 <mss 
1960,sackOK,timestamp 1797407 0,nop,wscale 0> (DF)
17:34:14.883020  tr0 < alphaspreit.watson.ibm.com.8080 > 
wat-eu-2.watson.ibm.com.1127: S 2359619042:2359619042(0) ack 4018469396 
win 15972 <mss 1452>
17:34:14.883061  tr0 > wat-eu-2.watson.ibm.com.1127 > 
alphaspreit.watson.ibm.com.8080: . 1:1(0) ack 1 win 31360 (DF)
17:34:14.883967  tr0 > wat-eu-2.watson.ibm.com.1127 > 
alphaspreit.watson.ibm.com.8080: . 1:1(0) ack 1 win 31360 (DF)
17:34:14.886759   lo > wat-eu-2.watson.ibm.com.1126 > 
wat-eu-2.watson.ibm.com.8080: P 1:490(489) ack 1 win 31072 
<nop,nop,timestamp 1797408 1797407> (DF)
17:34:14.886759   lo < wat-eu-2.watson.ibm.com.1126 > 
wat-eu-2.watson.ibm.com.8080: P 1:490(489) ack 1 win 31072 
<nop,nop,timestamp 1797408 1797407> (DF)
17:34:14.886821   lo > wat-eu-2.watson.ibm.com.8080 > 
wat-eu-2.watson.ibm.com.1126: . 1:1(0) ack 490 win 30583 
<nop,nop,timestamp 1797408 1797408> (DF)
17:34:14.886821   lo < wat-eu-2.watson.ibm.com.8080 > 
wat-eu-2.watson.ibm.com.1126: . 1:1(0) ack 490 win 30583 
<nop,nop,timestamp 1797408 1797408> (DF)
17:34:14.894836  tr0 > wat-eu-2.watson.ibm.com.1127 > 
alphaspreit.watson.ibm.com.8080: P 1:490(489) ack 1 win 31360 (DF)
17:34:14.901335  tr0 < alphaspreit.watson.ibm.com.8080 > 
wat-eu-2.watson.ibm.com.1127: P 1:187(186) ack 490 win 15972 (DF)
17:34:14.901359  tr0 > wat-eu-2.watson.ibm.com.1127 > 
alphaspreit.watson.ibm.com.8080: . 490:490(0) ack 187 win 31174 (DF)
17:34:14.901614   lo > wat-eu-2.watson.ibm.com.8080 > 
wat-eu-2.watson.ibm.com.1126: P 1:187(186) ack 490 win 31072 
<nop,nop,timestamp 1797410 1797408> (DF)
17:34:14.901614   lo < wat-eu-2.watson.ibm.com.8080 > 
wat-eu-2.watson.ibm.com.1126: P 1:187(186) ack 490 win 31072 
<nop,nop,timestamp 1797410 1797408> (DF)
17:34:14.901635   lo > wat-eu-2.watson.ibm.com.1126 > 
wat-eu-2.watson.ibm.com.8080: . 490:490(0) ack 187 win 30886 
<nop,nop,timestamp 1797410 1797410> (DF)
17:34:14.901635   lo < wat-eu-2.watson.ibm.com.1126 > 
wat-eu-2.watson.ibm.com.8080: . 490:490(0) ack 187 win 30886 
<nop,nop,timestamp 1797410 1797410> (DF)
17:34:14.901673  tr0 < alphaspreit.watson.ibm.com.8080 > 
wat-eu-2.watson.ibm.com.1127: F 187:187(0) ack 490 win 15972 (DF)
17:34:14.901688  tr0 > wat-eu-2.watson.ibm.com.1127 > 
alphaspreit.watson.ibm.com.8080: . 490:490(0) ack 188 win 31173 (DF)
17:34:14.928911  tr0 > wat-eu-2.watson.ibm.com.1127 > 
alphaspreit.watson.ibm.com.8080: F 490:490(0) ack 188 win 31360 (DF)
17:34:14.930635  tr0 < alphaspreit.watson.ibm.com.8080 > 
wat-eu-2.watson.ibm.com.1127: . 188:188(0) ack 491 win 15972 (DF)

At this point, the TCP connection between the TcpTunnelGui and the SOAP 
server has been closed, but the connection between the TcpTunnelGui and 
the SOAP client has not.  Nothing else happens unless I prod something. If 
I now ^Z the TcpTunnelGui, I get the following additional output in the 
tcpdump window:
17:35:04.081361   lo > wat-eu-2.watson.ibm.com.8080 > 
wat-eu-2.watson.ibm.com.1126: F 187:187(0) ack 490 win 31072 
<nop,nop,timestamp 1802328 1797410> (DF)
17:35:04.081361   lo < wat-eu-2.watson.ibm.com.8080 > 
wat-eu-2.watson.ibm.com.1126: F 187:187(0) ack 490 win 31072 
<nop,nop,timestamp 1802328 1797410> (DF)
17:35:04.081390   lo > wat-eu-2.watson.ibm.com.1126 > 
wat-eu-2.watson.ibm.com.8080: . 490:490(0) ack 188 win 31072 
<nop,nop,timestamp 1802328 1802328> (DF)
17:35:04.081390   lo < wat-eu-2.watson.ibm.com.1126 > 
wat-eu-2.watson.ibm.com.8080: . 490:490(0) ack 188 win 31072 
<nop,nop,timestamp 1802328 1802328> (DF)
17:35:04.390696   lo > wat-eu-2.watson.ibm.com.1126 > 
wat-eu-2.watson.ibm.com.8080: F 490:490(0) ack 188 win 31072 
<nop,nop,timestamp 1802359 1802328> (DF)
17:35:04.390696   lo < wat-eu-2.watson.ibm.com.1126 > 
wat-eu-2.watson.ibm.com.8080: F 490:490(0) ack 188 win 31072 
<nop,nop,timestamp 1802359 1802328> (DF)
17:35:04.390806   lo > wat-eu-2.watson.ibm.com.8080 > 
wat-eu-2.watson.ibm.com.1126: . 188:188(0) ack 491 win 31072 
<nop,nop,timestamp 1802359 1802359> (DF)
17:35:04.390806   lo < wat-eu-2.watson.ibm.com.8080 > 
wat-eu-2.watson.ibm.com.1126: . 188:188(0) ack 491 win 31072 
<nop,nop,timestamp 1802359 1802359> (DF)
and the SOAP client processes the reply message (which the sharp-eyed will 
note is unusually short for a SOAP reply; that's expected, the web server 
is asking for authentication, because I've configured it to do so).

Thanks for any help,
Mike

SOAP SSL exceptions and error messages

Posted by Robert Dyas <rd...@adelphia.net>.
Hi Everyone,

It does not appear that soap.jar (with SSL) passes exception information
very well.

There are two copies of error output below. The first one is for an
"untrusted server cert chain" when simplying using URL outside of the soap
framework. The second one is accessing the same server, and I am pretty sure
generating the same error, however the info passed along by soap is so
limited that you would never be able to debug it.

Is there a way to get soap to pass along better exception information?


**************** error output from JSSE not using soap *************
Exception in thread "main" javax.net.ssl.SSLException: untrusted server cert
chain
        at
com.sun.net.ssl.internal.ssl.SSLSocketImpl.a([DashoPro-V1.2-120198])
        at
com.sun.net.ssl.internal.ssl.ClientHandshaker.a([DashoPro-V1.2-120198])
        at
com.sun.net.ssl.internal.ssl.ClientHandshaker.processMessage([DashoPro-V1.2-
120198])
        at
com.sun.net.ssl.internal.ssl.Handshaker.process_record([DashoPro-V1.2-120198
])
        at
com.sun.net.ssl.internal.ssl.SSLSocketImpl.a([DashoPro-V1.2-120198])
        at
com.sun.net.ssl.internal.ssl.SSLSocketImpl.a([DashoPro-V1.2-120198])
        at
com.sun.net.ssl.internal.ssl.AppOutputStream.write([DashoPro-V1.2-120198])
        at java.io.OutputStream.write(Unknown Source)
        at
com.sun.net.ssl.internal.ssl.SSLSocketImpl.startHandshake([DashoPro-V1.2-120
198])
        at
com.sun.net.ssl.internal.www.protocol.https.HttpsClient.doConnect([DashoPro-
V1.2-120198])
        at
com.sun.net.ssl.internal.www.protocol.https.NetworkClient.openServer([DashoP
ro-V1.2-120198])
        at
com.sun.net.ssl.internal.www.protocol.https.HttpClient.l([DashoPro-V1.2-1201
98])
        at
com.sun.net.ssl.internal.www.protocol.https.HttpClient.<init>([DashoPro-V1.2
-120198])
        at
com.sun.net.ssl.internal.www.protocol.https.HttpsClient.<init>([DashoPro-V1.
2-120198])
        at
com.sun.net.ssl.internal.www.protocol.https.HttpsClient.a([DashoPro-V1.2-120
198])
        at
com.sun.net.ssl.internal.www.protocol.https.HttpsClient.a([DashoPro-V1.2-120
198])
        at
com.sun.net.ssl.internal.www.protocol.https.HttpsURLConnection.connect([Dash
oPro-V1.2-120198])
        at
com.sun.net.ssl.internal.www.protocol.https.HttpsURLConnection.getInputStrea
m([DashoPro-V1.2-120198])
        at java.net.URL.openStream(Unknown Source)
        at URLReader.main(URLReader.java:47)




**************** error output from same errror with soap *************

Exception in thread "main" [SOAPException: faultCode=SOAP-ENV:Client;
msg=Error
opening socket: null; targetException=java.lang.IllegalArgumentException:
Error
opening socket: null]
        at
org.apache.soap.transport.http.SOAPHTTPConnection.send(SOAPHTTPConnection.ja
va:184)
        at org.apache.soap.rpc.Call.invoke(Call.java:172)
        at GetQuote.main(GetQuote.java:40)



SOAP SSL exceptions and error messages

Posted by Robert Dyas <rd...@adelphia.net>.
Hi Everyone,

It does not appear that soap.jar (with SSL) passes exception information
very well.

There are two copies of error output below. The first one is for an
"untrusted server cert chain" when simplying using URL outside of the soap
framework. The second one is accessing the same server, and I am pretty sure
generating the same error, however the info passed along by soap is so
limited that you would never be able to debug it.

Is there a way to get soap to pass along better exception information?


**************** error output from JSSE not using soap *************
Exception in thread "main" javax.net.ssl.SSLException: untrusted server cert
chain
        at
com.sun.net.ssl.internal.ssl.SSLSocketImpl.a([DashoPro-V1.2-120198])
        at
com.sun.net.ssl.internal.ssl.ClientHandshaker.a([DashoPro-V1.2-120198])
        at
com.sun.net.ssl.internal.ssl.ClientHandshaker.processMessage([DashoPro-V1.2-
120198])
        at
com.sun.net.ssl.internal.ssl.Handshaker.process_record([DashoPro-V1.2-120198
])
        at
com.sun.net.ssl.internal.ssl.SSLSocketImpl.a([DashoPro-V1.2-120198])
        at
com.sun.net.ssl.internal.ssl.SSLSocketImpl.a([DashoPro-V1.2-120198])
        at
com.sun.net.ssl.internal.ssl.AppOutputStream.write([DashoPro-V1.2-120198])
        at java.io.OutputStream.write(Unknown Source)
        at
com.sun.net.ssl.internal.ssl.SSLSocketImpl.startHandshake([DashoPro-V1.2-120
198])
        at
com.sun.net.ssl.internal.www.protocol.https.HttpsClient.doConnect([DashoPro-
V1.2-120198])
        at
com.sun.net.ssl.internal.www.protocol.https.NetworkClient.openServer([DashoP
ro-V1.2-120198])
        at
com.sun.net.ssl.internal.www.protocol.https.HttpClient.l([DashoPro-V1.2-1201
98])
        at
com.sun.net.ssl.internal.www.protocol.https.HttpClient.<init>([DashoPro-V1.2
-120198])
        at
com.sun.net.ssl.internal.www.protocol.https.HttpsClient.<init>([DashoPro-V1.
2-120198])
        at
com.sun.net.ssl.internal.www.protocol.https.HttpsClient.a([DashoPro-V1.2-120
198])
        at
com.sun.net.ssl.internal.www.protocol.https.HttpsClient.a([DashoPro-V1.2-120
198])
        at
com.sun.net.ssl.internal.www.protocol.https.HttpsURLConnection.connect([Dash
oPro-V1.2-120198])
        at
com.sun.net.ssl.internal.www.protocol.https.HttpsURLConnection.getInputStrea
m([DashoPro-V1.2-120198])
        at java.net.URL.openStream(Unknown Source)
        at URLReader.main(URLReader.java:47)




**************** error output from same errror with soap *************

Exception in thread "main" [SOAPException: faultCode=SOAP-ENV:Client;
msg=Error
opening socket: null; targetException=java.lang.IllegalArgumentException:
Error
opening socket: null]
        at
org.apache.soap.transport.http.SOAPHTTPConnection.send(SOAPHTTPConnection.ja
va:184)
        at org.apache.soap.rpc.Call.invoke(Call.java:172)
        at GetQuote.main(GetQuote.java:40)