Going through the code, I basically wasted lot of time trying to fix
this problem and failed.
However, I found a simpler solution and could make it work by making a
simple change to the client transport.
On line 1538 of HTTPTransport.cpp we have
if( m_eProtocolType == APTHTTP1_0)
Going through the code, this means that we seem to assume that if the
server is using HTTP 1.1, it would always use chunking. This is false
for axis C++ and Apache as it could use content length while using
HTTP 1.1, and this is why the tests are failing.
If we change line 1538 of HTTPTransport.cpp to
if( (m_eProtocolType == APTHTTP1_0) || (m_eProtocolType ==
APTHTTP1_0) )
then the problem would be solved.
However, I did not commit this as I want to veryfy that this fix is
correct and in line with changes done by Fred.
Fred, could you please comment.
P.S. The content length given on server message seems coorect to me as
it gives the correct body length od the HTTP message. The trailing
/r/n/r/n is part of HTTP and I do not think that the content length
header should be counting that.
Thanks,
Samisa...
On 9/2/05, Samisa Abeysinghe <[EMAIL PROTECTED]> wrote:
> Obviously server side content length calculation seem to be in error.
> in src/server/apache2/Apache2Transport.cpp and in
> src/server/apache/ApacheTransport.cpp files.
>
> I had a glance at the code and seems like there is a chance to miss few bytes.
> Will have a detailed look.
>
> Thanks,
> Samisa...
>
> On 9/2/05, John Hawkins <[EMAIL PROTECTED]> wrote:
> >
> > So, can you fix it Fred?
> >
> >
> >
> >
> >
> > Fred Preston/UK/[EMAIL PROTECTED]
> >
> > 02/09/2005 11:45
> >
> > Please respond to
> > "Apache AXIS C Developers List"
> >
> >
> > To "Apache AXIS C Developers List" <[email protected]>
> >
> > cc
> >
> > Subject RE: Most of the test are failing
> >
> >
> >
> >
> >
> >
> > Hi Chinthana,
> > I've just been looking at the following response:-
> >
> > HTTP/1.1 200 OK
> > Date: Fri, 02 Sep 2005 08:30:48 GMT
> > Server: Apache/2.0.52 (Win32)
> > Content-Length: 399
> > Content-Type: text/xml
> >
> > <?xml version='1.0' encoding='utf-8' ?>
> > <SOAP-ENV:Envelope
> > xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"
> > xmlns:xsd="http://www.w3.org/2001/XMLSchema"
> > xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
> > <SOAP-ENV:Body>
> > <ns1:addResponse
> > xmlns:ns1="http://localhost/axis/Calculator">
> > <addReturn xsi:type="xsd:int">5</addReturn>
> > </ns1:addResponse>
> > </SOAP-ENV:Body>
> > </SOAP-ENV:Envelope>
> >
> > When I look at this in something like debug, I get the following hex
> > dump...
> >
> > -d
> > 0C61:0100 48 54 54 50 2F 31 2E 31-20 32 30 30 20 4F 4B 0D HTTP/1.1 200
> > OK.
> > 0C61:0110 0A 44 61 74 65 3A 20 46-72 69 2C 20 30 32 20 53 .Date: Fri, 02
> > S
> > 0C61:0120 65 70 20 32 30 30 35 20-30 38 3A 33 30 3A 34 38 ep 2005
> > 08:30:48
> > 0C61:0130 20 47 4D 54 0D 0A 53 65-72 76 65 72 3A 20 41 70 GMT..Server:
> > Ap
> > 0C61:0140 61 63 68 65 2F 32 2E 30-2E 35 32 20 28 57 69 6E ache/2.0.52
> > (Win
> > 0C61:0150 33 32 29 0D 0A 43 6F 6E-74 65 6E 74 2D 4C 65 6E
> > 32)..Content-Len
> > 0C61:0160 67 74 68 3A 20 33 39 39-0D 0A 43 6F 6E 74 65 6E gth:
> > 399..Conten
> > 0C61:0170 74 2D 54 79 70 65 3A 20-74 65 78 74 2F 78 6D 6C t-Type:
> > text/xml
> > 0C61:0180 0D 0A 0D 0A 3C 3F 78 6D-6C 20 76 65 72 73 69 6F ....<?xml
> > versio
> > 0C61:0190 6E 3D 27 31 2E 30 27 20-65 6E 63 6F 64 69 6E 67 n='1.0'
> > encoding
> > 0C61:01A0 3D 27 75 74 66 2D 38 27-20 3F 3E 0D 0A 3C 53 4F ='utf-8'
> > ?>..<SO
> > 0C61:01B0 41 50 2D 45 4E 56 3A 45-6E 76 65 6C 6F 70 65 20
> > AP-ENV:Envelope
> > 0C61:01C0 78 6D 6C 6E 73 3A 53 4F-41 50 2D 45 4E 56 3D 22
> > xmlns:SOAP-ENV="
> > 0C61:01D0 68 74 74 70 3A 2F 2F 73-63 68 65 6D 61 73 2E 78
> > http://schemas.x
> > 0C61:01E0 6D 6C 73 6F 61 70 2E 6F-72 67 2F 73 6F 61 70 2F
> > mlsoap.org/soap/
> > 0C61:01F0 65 6E 76 65 6C 6F 70 65-2F 22 20 78 6D 6C 6E 73 envelope/"
> > xmlns
> > 0C61:0200 3A 78 73 64 3D 22 68 74-74 70 3A 2F 2F 77 77 77
> > :xsd="http://www
> > 0C61:0210 2E 77 33 2E 6F 72 67 2F-32 30 30 31 2F 58 4D 4C
> > .w3.org/2001/XML
> > 0C61:0220 53 63 68 65 6D 61 22 20-78 6D 6C 6E 73 3A 78 73 Schema"
> > xmlns:xs
> > 0C61:0230 69 3D 22 68 74 74 70 3A-2F 2F 77 77 77 2E 77 33
> > i="http://www.w3
> > 0C61:0240 2E 6F 72 67 2F 32 30 30-31 2F 58 4D 4C 53 63 68
> > .org/2001/XMLSch
> > 0C61:0250 65 6D 61 2D 69 6E 73 74-61 6E 63 65 22 3E 0D 0A
> > ema-instance">..
> > 0C61:0260 3C 53 4F 41 50 2D 45 4E-56 3A 42 6F 64 79 3E 0D
> > <SOAP-ENV:Body>.
> > 0C61:0270 0A 3C 6E 73 31 3A 61 64-64 52 65 73 70 6F 6E 73
> > .<ns1:addRespons
> > 0C61:0280 65 20 78 6D 6C 6E 73 3A-6E 73 31 3D 22 68 74 74 e
> > xmlns:ns1="htt
> > 0C61:0290 70 3A 2F 2F 6C 6F 63 61-6C 68 6F 73 74 2F 61 78
> > p://localhost/ax
> > 0C61:02A0 69 73 2F 43 61 6C 63 75-6C 61 74 6F 72 22 3E 0D
> > is/Calculator">.
> > 0C61:02B0 0A 3C 61 64 64 52 65 74-75 72 6E 20 78 73 69 3A .<addReturn
> > xsi:
> > 0C61:02C0 74 79 70 65 3D 22 78 73-64 3A 69 6E 74 22 3E 35
> > type="xsd:int">5
> > 0C61:02D0 3C 2F 61 64 64 52 65 74-75 72 6E 3E 0D 0A 3C 2F
> > </addReturn>..</
> > 0C61:02E0 6E 73 31 3A 61 64 64 52-65 73 70 6F 6E 73 65 3E
> > ns1:addResponse>
> > 0C61:02F0 0D 0A 3C 2F 53 4F 41 50-2D 45 4E 56 3A 42 6F 64
> > ..</SOAP-ENV:Bod
> > 0C61:0300 79 3E 0D 0A 3C 2F 53 4F-41 50 2D 45 4E 56 3A 45
> > y>..</SOAP-ENV:E
> > 0C61:0310 6E 76 65 6C 6F 70 65 3E-0D 0A -- -- -- -- -- --
> > nvelope>........
> >
> > 0317 - 0184 = 791 - 388 = 403
> >
> > The end of the HTTP header is delimited by the sequence 'CRLFCRLF'. Thus
> > the first character of the message is the following character '<', that is
> > at location 0x0184 (or 388 in decimal). If we add the content length to
> > this offset we should be at the end of the message. But, 388 + 399 is 787
> > (or 0x0313) and if we look where this is in the message, rather than being
> > at the CRLF that follows '>' (i.e. the message delimiter) we are are
> > 'ope>CRLF' and this is why the transport is complaining. The actual message
> > length is 403 bytes which is 4 bytes bigger than the specified content
> > length.
> >
> > Regards,
> >
> > Fred Preston.
> >
> >
> >
> > "Chinthana C. Dinapala" <[EMAIL PROTECTED]>
> >
> > 02/09/2005 10:59
> > Please respond to "Apache AXIS C Developers List"
> > To: "Apache AXIS C Developers List"
> > <[email protected]>
> > cc:
> > Subject: RE: Most of the test are failing
> >
> >
> >
> >
> >
> >
> >
> > Hi Fred,
> >
> >
> >
> > I have attached two files Calculator and MathOpsDoc.
> >
> >
> >
> > Thanks
> >
> > Chinthana
> >
> >
> >
> >
> >
> > ________________________________
> >
> >
> >
> >
> > From:Fred Preston [mailto:[EMAIL PROTECTED]
> > Sent: Friday, September 02, 2005 3:51 PM
> > To: Apache AXIS C Developers List
> > Subject: RE: Most of the test are failing
> >
> >
> >
> >
> > Hi Chinthana,
> > Can you send me your exact response as an attachment (i.e. just as
> > it is on the wire) and I'll run it through the transport layer to see what
> > is going on...
> >
> > Regards,
> >
> > Fred Preston.
> >
> >
> >
> >
> > "Chinthana C. Dinapala" <[EMAIL PROTECTED]>
> >
> > 02/09/2005 10:15
> > Please respond to "Apache AXIS C Developers List"
> >
> > To: "Apache AXIS C Developers List"
> > <[email protected]>
> > cc:
> > Subject: RE: Most of the test are failing
> >
> >
> >
> >
> >
> >
> >
> >
> >
> > Hi John,
> >
> >
> >
> > I'm using axis C++ services in windows. With both xerces-c_2_6 and
> > xerces-c_2_2_0.
> >
> >
> >
> > Here is with full header.
> >
> >
> >
> > Request……………………….
> >
> >
> >
> > POST /axis/Calculator HTTP/1.1
> >
> > Host: localhost:8888
> >
> > Content-Type: text/xml; charset=UTF-8
> >
> > SOAPAction: "Calculator#add"
> >
> > Content-Length: 403
> >
> >
> >
> > <?xml version='1.0' encoding='utf-8' ?>
> >
> > <SOAP-ENV:Envelope
> > xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"
> > xmlns:xsd="http://www.w3.org/2001/XMLSchema"
> > xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
> >
> > <SOAP-ENV:Body>
> >
> > <ns1:add xmlns:ns1="http://localhost/axis/Calculator">
> >
> > <in0 xsi:type="xsd:int">2</in0>
> >
> > <in1 xsi:type="xsd:int">3</in1>
> >
> > </ns1:add>
> >
> > </SOAP-ENV:Body>
> >
> > </SOAP-ENV:Envelope>
> >
> >
> >
> > Respond……………………………..
> >
> >
> >
> > HTTP/1.1 200 OK
> >
> > Date: Fri, 02 Sep 2005 08:30:48 GMT
> >
> > Server: Apache/2.0.52 (Win32)
> >
> > Content-Length: 399
> >
> > Content-Type: text/xml
> >
> >
> >
> > <?xml version='1.0' encoding='utf-8' ?>
> >
> > <SOAP-ENV:Envelope
> > xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"
> > xmlns:xsd="http://www.w3.org/2001/XMLSchema"
> > xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
> >
> > <SOAP-ENV:Body>
> >
> > <ns1:addResponse
> > xmlns:ns1="http://localhost/axis/Calculator">
> >
> > <addReturn xsi:type="xsd:int">5</addReturn>
> >
> > </ns1:addResponse>
> >
> > </SOAP-ENV:Body>
> >
> > </SOAP-ENV:Envelope>
> >
> >
> >
> > Thanks
> >
> > Chinthana
> >
> >
> >
> >
> >
> >
> >
> >
> >
> >
> >
> >
> >
> > ________________________________
> >
> >
> >
> >
> >
> >
> >
> >
> >
> > From:John Hawkins [mailto:[EMAIL PROTECTED]
> > Sent:Friday, September 02, 2005 3:08 PM
> > To:Apache AXIS C Developers List
> > Subject:Re: Most of the test are failing
> >
> >
> >
> >
> > Hi,
> >
> > Fred put in some changes yesterday, to the transport which means it handles
> > the incoming messages differently. This looks like it broke - although we
> > are not seeing any problem on AIX or windows against WAS. Perhpas this is a
> > server-side transport issue - are you using the Axis C server?
> >
> > The key bit here is what does the http header look like? Can you put up the
> > whole of the tcmpon capture so Fred can take it and see what went wrong.
> > What platform are you on?
> >
> > cheers,
> > John.
> >
> >
> >
> >
> >
> >
> > "Chinthana C. Dinapala" <[EMAIL PROTECTED]>
> >
> > 02/09/2005 09:35
> >
> >
> >
> >
> > Please respond to
> >
> >
> >
> > "Apache AXIS C Developers List"
> >
> >
> >
> >
> >
> >
> >
> >
> >
> >
> >
> >
> >
> > To
> >
> >
> >
> >
> > "Apache AXIS C Developers List" <[email protected]>
> >
> >
> >
> > cc
> >
> >
> >
> >
> >
> >
> >
> >
> > Subject
> >
> >
> >
> >
> > Most of the test are failing
> >
> >
> >
> >
> >
> >
> >
> >
> >
> >
> >
> >
> >
> >
> >
> >
> >
> >
> >
> >
> >
> >
> >
> >
> >
> > Hi Folks,
> >
> > Today only following test are got client execution pass against C++
> > services.
> > AxisBench
> > AxisBench_TTest
> > ExceptionTestDoc_TTest
> >
> > I'm getting following exception.
> > HTTPTransportException:Input streaming error while getting data HTTP header
> > message must be chunked or have a content length.
> >
> > I have checked the respond from server through TCP monitor and seems to me
> > is correct.
> >
> > For e.g. following are the request and respond from the TCP monitor.
> >
> > Request…………………
> >
> > <?xml version='1.0' encoding='utf-8' ?>
> > <SOAP-ENV:Envelope
> > xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"
> > xmlns:xsd="http://www.w3.org/2001/XMLSchema"
> > xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
> > <SOAP-ENV:Body>
> > <ns1:add xmlns:ns1="http://localhost/axis/Calculator">
> > <in0 xsi:type="xsd:int">2</in0>
> > <in1 xsi:type="xsd:int">3</in1>
> > </ns1:add>
> > </SOAP-ENV:Body>
> > </SOAP-ENV:Envelope>
> >
> > Respond…………………………
> >
> > <?xml version='1.0' encoding='utf-8' ?>
> > <SOAP-ENV:Envelope
> > xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"
> > xmlns:xsd="http://www.w3.org/2001/XMLSchema"
> > xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
> > <SOAP-ENV:Body>
> > <ns1:addResponse
> > xmlns:ns1="http://localhost/axis/Calculator">
> > <addReturn xsi:type="xsd:int">5</addReturn>
> > </ns1:addResponse>
> > </SOAP-ENV:Body>
> > </SOAP-ENV:Envelope>
> >
> > Thanks
> > Chinthana
> >
> >
> > Creating competitive advantage
> >
> >
> >
> > #### image001.gif has been removed from this note on September 02 2005 by
> > Fred Preston
> >
> >
> >
> > #### TCPMon_Calculator has been removed from this note on September 02 2005
> > by Fred Preston
> > #### TCPMon_MathOpsDoc has been removed from this note on September 02 2005
> > by Fred Preston
> >
> >
>