Loading ...
Sorry, an error occurred while loading the content.
 

XMLBus Server Interop issue

Expand Messages
  • Daniel Kulp
    Hi all, During the interop event this week, a couple of the vendors reported an issue with the XMLBus server returning WSDL where the SOAP location URL did not
    Message 1 of 2 , Mar 1, 2002
      Hi all,

      During the interop event this week, a couple of the vendors reported an
      issue with the XMLBus server returning WSDL where the SOAP location URL
      did not contain the port number. I've been trying to do some research on
      this issue and it looks to me like it is a bug in the clients that are
      downloading the WSDL, not the XMLBus server.

      Basically, the XMLBus server uses the "Host" HTTP header (if available)
      to create the URL that is used in the WSDL. This allows the server to be
      bound to multiple ports and whatever port the client was talking to is
      what will be represented in the WSDL. However, some of the SOAP clients
      are setting that header to just
      Host: interop.xmlbus.com
      not:
      Host: interop.xmlbus.com:7002

      I took a look at the HTTP 1.1 protocol specification (rfc 2616)
      (http://www.ietf.org/rfc/rfc2616.txt) and according to section
      14.23, the Host header MUST contain the port number if it isn't the
      default port (80 for http).

      Anyway, I wanted to post this to SOAP Builders as this really is an
      interop issue. I wanted to let everyone know about it so the bugs in the
      client HTTP stacks can be worked out as well as the bugs in the SOAP
      stacks.

      Thanks!

      --
      J. Daniel Kulp
      Principal Engineer
      IONA
      END 2 ANYWHERE
      P: 781-902-8727 C: 617-513-4582 F:781-902-8001
      daniel.kulp@...
    • Steve Waring
      Hi Daniel From: Daniel Kulp ... I am seeing this under different circumstances: ...
      Message 2 of 2 , Mar 1, 2002
        Hi Daniel

        From: "Daniel Kulp" <daniel.kulp@...>
        | what will be represented in the WSDL. However, some of the SOAP clients
        | are setting that header to just
        | Host: interop.xmlbus.com
        | not:
        | Host: interop.xmlbus.com:7002

        I am seeing this under different circumstances:

        This is from a report I previously sent in:

        > ====
        > Case 1, send:
        >
        > GET /xmlbus/container/InteropTest/BaseService/BasePort/ HTTP/1.0
        > Accept: text/xml, */*
        > Accept-Language: en-au
        > User-Agent: Mozilla/4.0 (compatible; Win32; WinHttp.WinHttpRequest.5)
        > Host: interop.xmlbus.com:7002
        > Connection: close
        >
        >
        > WSDL returned with address location:
        >
        "http://interop.xmlbus.com:7002/xmlbus/container/InteropTest/BaseService/Bas
        > ePort/"/>
        >
        > ====
        > Case 2, send:
        >
        > GET /xmlbus/container/InteropTest/BaseService/BasePort/ HTTP/1.0
        > Accept: text/xml, */*
        > Accept-Language: en-au
        > User-Agent: Mozilla/4.0 (compatible; Win32; WinHttp.WinHttpRequest.5)
        > Host: interop.xmlbus.com:7002
        > Content-Length: 0
        > Connection: close
        >
        >
        > WSDL returned with address location:
        >
        "http://interop.xmlbus.com/xmlbus/container/InteropTest/BaseService/BasePort
        > /"/>
        >
        > ====
        >
        > Case 1 is correct, but in Case 2, the addition of the Content-Length
        header
        > has the side effect of your servers answering a address location with no
        > port.

        While the addition of a Content-Length: 0 header to HTTP GET request is not
        common, the MSXML HTTP client does add it, and my reading of the spec is
        that it is valid to do so. In my tests, it seems to be the presense of this
        header that causes the port number to be missing.

        Can you reproduce this?
        Thanks,
        Steve Waring
        www.dolphinharbor.org
      Your message has been successfully submitted and would be delivered to recipients shortly.