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/15 05:07:40 UTC

Re: SOAP call fails iff call message length is 3568 or greater, using IBM SOAP1.2, Tomcat 3.2.1 standalone, IBM JDK 1.3.0, and RedHat Linux 6.2

Chuck Clark,
As you can see in an earlier message (see, e.g., 
<http://marc.theaimsgroup.com/?l=soap-user&m=97894850102453&w=2>, for a 
message on Jan 8 10:05 AM GMT (I think) from Wouter Cloetens), Wouter 
thinks this is a manifestation of a problem very recently fixed.  It took 
me a while to get past the red herrings, but I now strongly suspect this 
too.  My team will test this hypothesis ASAP by trying some very recent 
vintage of Apache SOAP.

The problem seems to be with linebreaks that are sent (client to server) 
after the end of the call message.  Not --- and this is what threw me off 
the track for a while --- in a separate packet, but still after then last 
byte accounted for by the Content-Length header.  If you can get full 
packet traces and look for this, you may help clarify your situation.

I produced my test code by making the following changes to the stockquote 
example.  In class StockQuoteService, entirely gut the "getQuote" method, 
replacing its body with
      return symbol.hashCode();
Note that the client doesn't really care whether the result is a float or 
an int.  In class GetQuote, replace the assignment
    String symbol = args[2 - offset];
with
    String symbol_len_str = args[2 - offset];
    int sym_len = Integer.parseInt(symbol_len_str);
    char[] sym_chars = new char[sym_len];
    for (int i = 0; i < sym_len; i++)
        sym_chars[i] = (char) ('A' + (i % 26));
    String symbol = new String(sym_chars);

Good luck,
Mike