7 Replies Latest reply on May 19, 2009 4:37 PM by charitykey

    Client call fails using JBossWS

      Hi, I have a client that causes a web service to throw a 500 error when it uses JBossWS to make the service call. For some reason the same request succeeds when Metro is used. I have WireShark captures of the failed and successful requests, and there are only a few very minor differences that I can find.

      (captures are below).

      Here are the differences I see:

      1. JBossWS streams the request body, so it sets Transfer-Encoding: chunked and does not set a Content-Length header. Not that it's excusable for a server to barf over this sort of thing, but this seems like the biggest difference between the two. Is it possible to make JBossWS _not_ stream the request?

      2. JBossWS adds a "Pragma" header and a custom "JBoss-Remoting-Version" header. Can't imagine these are the problem.

      3. JBossWS omits the XML declaration header in the request body, and happens to use "env" for the SOAP namespace, while Metro uses "S." Again, I don't imagine this is the problem, but just for kicks, can this be customized?

      I'm going to use curl to see if I can't narrow down the problem further. Unfortunately the actual text message that the server responds with on the 500 error is generic and doesn't provide any insight into the problem.

      Thanks for any insight.

      Good request:

      No. Time Source Destination Protocol Info
       11 8.719335 172.16.10.203 192.251.13.133 HTTP POST /emkt/xml/query HTTP/1.1
      
      Frame 11 (393 bytes on wire, 393 bytes captured)
      Ethernet II, Src: HewlettP_ad:42:c3 (00:1c:c4:ad:42:c3), Dst: Cisco_f9:55:ff (00:17:e0:f9:55:ff)
      Internet Protocol, Src: 172.16.10.203 (172.16.10.203), Dst: 192.251.13.133 (192.251.13.133)
      Transmission Control Protocol, Src Port: 49504 (49504), Dst Port: http (80), Seq: 1, Ack: 1, Len: 327
      Hypertext Transfer Protocol
       POST /emkt/xml/query HTTP/1.1\r\n
       Request Method: POST
       Request URI: /emkt/xml/query
       Request Version: HTTP/1.1
       SOAPAction: "query"\r\n
       Accept: text/xml, multipart/related, text/html, image/gif, image/jpeg, *; q=.2, */*; q=.2\r\n
       Content-Type: text/xml; charset=utf-8\r\n
       User-Agent: Java/1.6.0_06\r\n
       Host: emkt.pjm.com\r\n
       Connection: keep-alive\r\n
       Content-Length: 244
       \r\n
      
      No. Time Source Destination Protocol Info
       12 8.719374 172.16.10.203 192.251.13.133 HTTP Continuation or non-HTTP traffic
      
      Frame 12 (310 bytes on wire, 310 bytes captured)
      Ethernet II, Src: HewlettP_ad:42:c3 (00:1c:c4:ad:42:c3), Dst: Cisco_f9:55:ff (00:17:e0:f9:55:ff)
      Internet Protocol, Src: 172.16.10.203 (172.16.10.203), Dst: 192.251.13.133 (192.251.13.133)
      Transmission Control Protocol, Src Port: 49504 (49504), Dst Port: http (80), Seq: 328, Ack: 1, Len: 244
      Hypertext Transfer Protocol
       Data (244 bytes)
      
      0000 3c 3f 78 6d 6c 20 76 65 72 73 69 6f 6e 3d 22 31 <?xml version="1
      0010 2e 30 22 20 3f 3e 3c 53 3a 45 6e 76 65 6c 6f 70 .0" ?><S:Envelop
      0020 65 20 78 6d 6c 6e 73 3a 53 3d 22 68 74 74 70 3a e xmlns:S="http:
      0030 2f 2f 73 63 68 65 6d 61 73 2e 78 6d 6c 73 6f 61 //schemas.xmlsoa
      0040 70 2e 6f 72 67 2f 73 6f 61 70 2f 65 6e 76 65 6c p.org/soap/envel
      0050 6f 70 65 2f 22 3e 3c 53 3a 42 6f 64 79 3e 3c 51 ope/"><S:Body><Q
      0060 75 65 72 79 52 65 71 75 65 73 74 20 78 6d 6c 6e ueryRequest xmln
      0070 73 3d 22 68 74 74 70 3a 2f 2f 65 6d 6b 74 2e 70 s="http://emkt.p
      0080 6a 6d 2e 63 6f 6d 2f 65 6d 6b 74 2f 78 6d 6c 22 jm.com/emkt/xml"
      0090 3e 3c 51 75 65 72 79 4c 6f 61 64 52 65 73 70 6f ><QueryLoadRespo
      00a0 6e 73 65 20 64 61 79 3d 22 32 30 30 38 2d 31 30 nse day="2008-10
      00b0 2d 31 35 22 3e 3c 41 6c 6c 2f 3e 3c 2f 51 75 65 -15"><All/></Que
      00c0 72 79 4c 6f 61 64 52 65 73 70 6f 6e 73 65 3e 3c ryLoadResponse><
      00d0 2f 51 75 65 72 79 52 65 71 75 65 73 74 3e 3c 2f /QueryRequest></
      00e0 53 3a 42 6f 64 79 3e 3c 2f 53 3a 45 6e 76 65 6c S:Body></S:Envel
      00f0 6f 70 65 3e ope>
       Data: 3C3F786D6C2076657273696F6E3D22312E3022203F3E3C53...
      
      No. Time Source Destination Protocol Info
       239 11.362093 192.251.13.133 172.16.10.203 HTTP/XML HTTP/1.1 200 OK
      
      Frame 239 (424 bytes on wire, 424 bytes captured)
      Ethernet II, Src: Cisco_f9:55:ff (00:17:e0:f9:55:ff), Dst: HewlettP_ad:42:c3 (00:1c:c4:ad:42:c3)
      Internet Protocol, Src: 192.251.13.133 (192.251.13.133), Dst: 172.16.10.203 (172.16.10.203)
      Transmission Control Protocol, Src Port: http (80), Dst Port: 49504 (49504), Seq: 244782, Ack: 572, Len: 358
      [Reassembled TCP Segments (245139 bytes): #14(1368), #15(389), #18(1368), #20(1368), #22(1368), #24(1368), #26(1368), #28(1368), #30(1368), #32(1368), #34(1368), #36(1368), #38(1368), #40(1368), #42(1368), #44(1368), #46(1368), #48(1368), #]
      Hypertext Transfer Protocol
       HTTP/1.1 200 OK\r\n
       Request Version: HTTP/1.1
       Response Code: 200
       Date: Wed, 15 Oct 2008 16:59:57 GMT\r\n
       Content-Type: text/xml\r\n
       Set-Cookie: JSESSIONID=L2hNJGnpYndLmYMcwv58CN2pfqMfmPJghLPfSJwpZdBQnDzDJLnG!-697457095; path=/\r\n
       Transfer-Encoding: chunked\r\n
       Set-Cookie: BIGipServeremkt.pjm.com=361277632.25115.0000; expires=Wed, 15-Oct-2008 17:29:59 GMT; path=/\r\n
       \r\n
       HTTP chunked response
      eXtensible Markup Language
      


      Bad request:
      No. Time Source Destination Protocol Info
       12 9.644348 172.16.10.203 192.251.13.133 HTTP POST /emkt/xml/query HTTP/1.1
      
      Frame 12 (454 bytes on wire, 454 bytes captured)
      Ethernet II, Src: HewlettP_ad:42:c3 (00:1c:c4:ad:42:c3), Dst: Cisco_f9:55:ff (00:17:e0:f9:55:ff)
      Internet Protocol, Src: 172.16.10.203 (172.16.10.203), Dst: 192.251.13.133 (192.251.13.133)
      Transmission Control Protocol, Src Port: 42670 (42670), Dst Port: http (80), Seq: 1, Ack: 1, Len: 388
      Hypertext Transfer Protocol
       POST /emkt/xml/query HTTP/1.1\r\n
       Request Method: POST
       Request URI: /emkt/xml/query
       Request Version: HTTP/1.1
       SOAPAction: "query"\r\n
       Content-Type: text/xml; charset=UTF-8\r\n
       JBoss-Remoting-Version: 22\r\n
       User-Agent: JBossRemoting - 2.2.2.SP8\r\n
       Cache-Control: no-cache\r\n
       Pragma: no-cache\r\n
       Host: emkt.pjm.com\r\n
       Accept: text/html, image/gif, image/jpeg, *; q=.2, */*; q=.2\r\n
       Connection: keep-alive\r\n
       Transfer-Encoding: chunked\r\n
       \r\n
      
      No. Time Source Destination Protocol Info
       13 9.645404 172.16.10.203 192.251.13.133 HTTP Continuation or non-HTTP traffic
      
      Frame 13 (352 bytes on wire, 352 bytes captured)
      Ethernet II, Src: HewlettP_ad:42:c3 (00:1c:c4:ad:42:c3), Dst: Cisco_f9:55:ff (00:17:e0:f9:55:ff)
      Internet Protocol, Src: 172.16.10.203 (172.16.10.203), Dst: 192.251.13.133 (192.251.13.133)
      Transmission Control Protocol, Src Port: 42670 (42670), Dst Port: http (80), Seq: 389, Ack: 1, Len: 286
      Hypertext Transfer Protocol
       Data (286 bytes)
      
      0000 31 31 37 0d 0a 3c 65 6e 76 3a 45 6e 76 65 6c 6f 117..<env:Envelo
      0010 70 65 20 78 6d 6c 6e 73 3a 65 6e 76 3d 27 68 74 pe xmlns:env='ht
      0020 74 70 3a 2f 2f 73 63 68 65 6d 61 73 2e 78 6d 6c tp://schemas.xml
      0030 73 6f 61 70 2e 6f 72 67 2f 73 6f 61 70 2f 65 6e soap.org/soap/en
      0040 76 65 6c 6f 70 65 2f 27 3e 3c 65 6e 76 3a 48 65 velope/'><env:He
      0050 61 64 65 72 3e 3c 2f 65 6e 76 3a 48 65 61 64 65 ader></env:Heade
      0060 72 3e 3c 65 6e 76 3a 42 6f 64 79 3e 3c 51 75 65 r><env:Body><Que
      0070 72 79 52 65 71 75 65 73 74 20 78 6d 6c 6e 73 3d ryRequest xmlns=
      0080 22 68 74 74 70 3a 2f 2f 65 6d 6b 74 2e 70 6a 6d "http://emkt.pjm
      0090 2e 63 6f 6d 2f 65 6d 6b 74 2f 78 6d 6c 22 3e 3c .com/emkt/xml"><
      00a0 51 75 65 72 79 4d 61 72 6b 65 74 52 65 73 75 6c QueryMarketResul
      00b0 74 73 20 74 79 70 65 3d 22 4c 6f 61 64 52 65 73 ts type="LoadRes
      00c0 70 6f 6e 73 65 22 20 64 61 79 3d 22 32 30 30 38 ponse" day="2008
      00d0 2d 31 30 2d 31 35 22 3e 3c 41 6c 6c 2f 3e 3c 2f -10-15"><All/></
      00e0 51 75 65 72 79 4d 61 72 6b 65 74 52 65 73 75 6c QueryMarketResul
      00f0 74 73 3e 3c 2f 51 75 65 72 79 52 65 71 75 65 73 ts></QueryReques
      0100 74 3e 3c 2f 65 6e 76 3a 42 6f 64 79 3e 3c 2f 65 t></env:Body></e
      0110 6e 76 3a 45 6e 76 65 6c 6f 70 65 3e 0d 0a nv:Envelope>..
       Data: 3131370D0A3C656E763A456E76656C6F706520786D6C6E73...
      
      No. Time Source Destination Protocol Info
       15 9.662267 172.16.10.203 192.251.13.133 HTTP Continuation or non-HTTP traffic
      
      Frame 15 (71 bytes on wire, 71 bytes captured)
      Ethernet II, Src: HewlettP_ad:42:c3 (00:1c:c4:ad:42:c3), Dst: Cisco_f9:55:ff (00:17:e0:f9:55:ff)
      Internet Protocol, Src: 172.16.10.203 (172.16.10.203), Dst: 192.251.13.133 (192.251.13.133)
      Transmission Control Protocol, Src Port: 42670 (42670), Dst Port: http (80), Seq: 675, Ack: 1, Len: 5
      Hypertext Transfer Protocol
       Data (5 bytes)
      
      0000 30 0d 0a 0d 0a 0....
       Data: 300D0A0D0A
      
      No. Time Source Destination Protocol Info
       20 9.865277 192.251.13.133 172.16.10.203 HTTP [TCP Out-Of-Order] HTTP/1.1 500 Internal Server Error (text/html)
      
      Frame 20 (1290 bytes on wire, 1290 bytes captured)
      Ethernet II, Src: Cisco_f9:55:ff (00:17:e0:f9:55:ff), Dst: HewlettP_ad:42:c3 (00:1c:c4:ad:42:c3)
      Internet Protocol, Src: 192.251.13.133 (192.251.13.133), Dst: 172.16.10.203 (172.16.10.203)
      Transmission Control Protocol, Src Port: http (80), Dst Port: 42670 (42670), Seq: 1, Ack: 680, Len: 1224
      Hypertext Transfer Protocol
       HTTP/1.1 500 Internal Server Error\r\n
       Request Version: HTTP/1.1
       Response Code: 500
       Date: Wed, 15 Oct 2008 17:13:36 GMT\r\n
       Content-Length: 883
       Content-Type: text/html\r\n
       Set-Cookie: JSESSIONID=L2kQ8KWNVHbzBDbfcNRwQc1QvR5W6PyPFzyQ6F5PL7lYds0tG9dP!-330699111; path=/\r\n
       Connection: Close\r\n
       Set-Cookie: BIGipServeremkt.pjm.com=344500416.25115.0000; expires=Wed, 15-Oct-2008 17:43:36 GMT; path=/\r\n
       \r\n
      Line-based text data: text/html