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

Re: [soaplite] Strange SOAP envelope results

Expand Messages
  • Byrne Reese
    Namespaces are not required to resolve to anything, and are not actually (or typically) used by parsers for anything. The fact that
    Message 1 of 6 , Apr 21, 2004
    • 0 Attachment
      Namespaces are not required to resolve to anything, and are not actually
      (or typically) used by parsers for anything.

      The fact that http://www.w3.org/2001/XMLSchema resolves to anything is
      simply a convention.

      That is because namespaces are URIs (Universal Resource Identifiers) and
      not URLs (Universal Resource Locations). Subtle, but important difference.

      Joe Breeden wrote:

      > Paul,
      >
      > I was working with my .Net developer and we have noticed something that
      > could be related. I don't know. If you put the URL '
      > http://www.w3.org/2001/XMLSchema' in a browser, the result is an HTML
      > page describing the XMLSchema namespace and not the actual XML schema.
      > If you retrieve ' http://www.w3.org/2001/XMLSchema.xsd' you get the
      > schema. I think that may have something to do with the xsi/xsd
      > namespaces not being found.
      >
      > Again, thanks for all the help.
      >
      > Joe
      >
      > -----Original Message-----
      > From: Joe Breeden
      > Sent: Thursday, April 22, 2004 7:30 AM
      > To: soaplite@yahoogroups.com
      > Subject: RE: [soaplite] Strange SOAP envelope results
      >
      > Paul,
      >
      > Thanks for the response. I don't know if I can shed any more light on
      > the problem, but I'll try. I don't really know the sequence of calls
      > before a failure occurs. I can recreate the error with some regularity
      > with a test script I have that makes the same calls listed below, but in
      > SOAP 1.1. I put the SOAP call into a while(1) loop and let it hit the
      > server and then make the call from the .Net client. Unfortunately, the
      > error doesn't happen on a regular basis. I thought for a bit that maybe
      > the SOAP::Lite module was using a global variable to store the envelope
      > and that it wasn't be rewritten because of the persistent nature of the
      > Perl interpreter when used with apache/mod_perl. But, if that were the
      > case I would expect the problem would be fairly regular and easily
      > repeatable.
      >
      > Thanks for looking into this for me. I hope this additional info helps.
      >
      > Joe
      >
      > -----Original Message-----
      > From: Paul Kulchenko [mailto:paulclinger@...]
      > Sent: Thursday, April 22, 2004 12:29 AM
      > To: Joe Breeden; soaplite@yahoogroups.com
      > Subject: Re: [soaplite] Strange SOAP envelope results
      >
      > Joe,
      >
      > I believe you're right about the reason for this behavior -- mixture
      > of SOAP1.1 and 1.2 requests. However, I don't see anything that could
      > cause this. Do you know the sequence of SOAP1.1 or 1.2 calls before
      > the call that fails? For example, SOAP1.1 -- valid fault response,
      > SOAP1.2 invalid response.
      >
      > One possible reason for that behavior is the lack of ANY elements in
      > the response that reference xsi/xsd namespaces, but even in this case
      > the default XML Schema (which is 2001) should be used. I'm puzzled by
      > this. Any additional info would be very helpful. Thank you.
      >
      > Best wishes, Paul.
      >
      >
      >
      > ------------------------------------------------------------------------
      > *Yahoo! Groups Links*
      >
      > * To visit your group on the web, go to:
      > http://groups.yahoo.com/group/soaplite/
      >
      > * To unsubscribe from this group, send an email to:
      > soaplite-unsubscribe@yahoogroups.com
      > <mailto:soaplite-unsubscribe@yahoogroups.com?subject=Unsubscribe>
      >
      > * Your use of Yahoo! Groups is subject to the Yahoo! Terms of
      > Service <http://docs.yahoo.com/info/terms/>.
      >
      >
    • Joe Breeden
      Paul, I was working with my .Net developer and we have noticed something that could be related. I don t know. If you put the URL
      Message 2 of 6 , Apr 22, 2004
      • 0 Attachment
        Paul,

        I was working with my .Net developer and we have noticed something that
        could be related. I don't know. If you put the URL '
        http://www.w3.org/2001/XMLSchema' in a browser, the result is an HTML
        page describing the XMLSchema namespace and not the actual XML schema.
        If you retrieve ' http://www.w3.org/2001/XMLSchema.xsd' you get the
        schema. I think that may have something to do with the xsi/xsd
        namespaces not being found.

        Again, thanks for all the help.

        Joe

        -----Original Message-----
        From: Joe Breeden
        Sent: Thursday, April 22, 2004 7:30 AM
        To: soaplite@yahoogroups.com
        Subject: RE: [soaplite] Strange SOAP envelope results

        Paul,

        Thanks for the response. I don't know if I can shed any more light on
        the problem, but I'll try. I don't really know the sequence of calls
        before a failure occurs. I can recreate the error with some regularity
        with a test script I have that makes the same calls listed below, but in
        SOAP 1.1. I put the SOAP call into a while(1) loop and let it hit the
        server and then make the call from the .Net client. Unfortunately, the
        error doesn't happen on a regular basis. I thought for a bit that maybe
        the SOAP::Lite module was using a global variable to store the envelope
        and that it wasn't be rewritten because of the persistent nature of the
        Perl interpreter when used with apache/mod_perl. But, if that were the
        case I would expect the problem would be fairly regular and easily
        repeatable.

        Thanks for looking into this for me. I hope this additional info helps.

        Joe

        -----Original Message-----
        From: Paul Kulchenko [mailto:paulclinger@...]
        Sent: Thursday, April 22, 2004 12:29 AM
        To: Joe Breeden; soaplite@yahoogroups.com
        Subject: Re: [soaplite] Strange SOAP envelope results

        Joe,

        I believe you're right about the reason for this behavior -- mixture
        of SOAP1.1 and 1.2 requests. However, I don't see anything that could
        cause this. Do you know the sequence of SOAP1.1 or 1.2 calls before
        the call that fails? For example, SOAP1.1 -- valid fault response,
        SOAP1.2 invalid response.

        One possible reason for that behavior is the lack of ANY elements in
        the response that reference xsi/xsd namespaces, but even in this case
        the default XML Schema (which is 2001) should be used. I'm puzzled by
        this. Any additional info would be very helpful. Thank you.

        Best wishes, Paul.
      • Byrne Reese
        Joe, I have been looking into this problem again and was wondering if you ever resolved it. To be honest, I am having a little difficulty myself trying to
        Message 3 of 6 , Oct 20, 2004
        • 0 Attachment
          Joe,

          I have been looking into this problem again and was wondering if you
          ever resolved it. To be honest, I am having a little difficulty myself
          trying to track this down.

          SOAP::Lite makes use of a lot of global variables which leads me to
          believe that it is not entirely threadsafe - mod_perl may be very well
          be the culprit.

          I will do what I can to reproduce this bug though and track it down. Let
          me know if you ever resolved it.

          Byrne

          Joe Breeden wrote:

          > Hello All,
          >
          > I am implementing a SOAP::Lite service that will interact with .Net
          > clients and Apache Axis clients.
          >
          > My configuration is as follows:
          >
          > Apache 1.3.29
          > mod_perl 1.29
          > PERL 5.8.3
          > SOAP::Lite 0.60a (downloaded from CPAN)
          > RedHat 7.3
          >
          > I am using just a basic apache/mod_perl server implementation. My
          > handler module is:
          >
          > package Soap;
          >
          > my $VERSION = do {'$Id: Soap.pm,v 1.1.1.1 2004/04/12 14:44:09 jbreeden
          > Exp $' =~ /,v\s(.[^\s]+)\s/g; $1};
          >
          > use strict;
          > use SOAP::Transport::HTTP;
          >
          > use Person;
          > use Community;
          > use Participant;
          > use Service;
          >
          > my $server = SOAP::Transport::HTTP::Apache
          > ->dispatch_to('Person', 'Community', 'Participant', 'Service')
          > ;
          >
          > sub handler { $server->handler(@_) }
          >
          > 1;
          >
          > I don't load SOAP::Lite or any SOAP related modules during server
          > startup (i.e. via startup.pl or some httpd.conf directive).
          >
          > I probably don't have to 'use' my packages that are going to be
          > dispatched to, but it seems to work. My exposed packages are very basic;
          > essentially all they do is pass data back and forth to our MS SQL Server
          > database.
          >
          > The problem is that every once in a while responses from the server do
          > not have all the envelope parts. This seems to happen quite a bit when
          > either a mixture of clients using SOAP v1.1 and SOAP v1.2 call the same
          > exposed methods or when a client sends in a malformed envelope on a
          > request.
          >
          > Here is an example of a failed SOAP exchange (from a .Net client
          > perspective). These have been edited for clarity.
          >
          > Client Sends:
          > <s:Envelope
          > xmlns:SOAP-ENC="http://www.w3.org/2001/06/soap-encoding"
          > s:encodingStyle="http://www.w3.org/2001/06/soap-encoding"
          > xmlns:s="http://www.w3.org/2001/06/soap-envelope"
          > xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
          > xmlns:xsd="http://www.w3.org/2001/XMLSchema">
          > <s:Body>
          > <m:getRoles xmlns:m="http://devlinux02.ena.com/Person">
          > <c-gensym3 xsi:type="xsd:string">communityId</c-gensym3>
          > <c-gensym5 xsi:type="xsd:int">3277</c-gensym5>
          > </m:getRoles>
          > </s:Body>
          > </s:Envelope>
          >
          > Server responds:
          > <?xml version="1.0" encoding="UTF-8"?>
          > <SOAP-ENV:Envelope
          > xmlns:SOAP-ENC="http://www.w3.org/2001/06/soap-encoding"
          > xmlns:SOAP-ENV="http://www.w3.org/2001/06/soap-envelope"
          >
          > SOAP-ENV:encodingStyle="http://www.w3.org/2001/06/soap-encoding">
          > <SOAP-ENV:Body>
          > <namesp7:getRolesResponsexmlns:namesp7="http://devlinux02.ena.com/Person
          > ">
          > <SOAP-ENC:Array xsi:type="SOAP-ENC:Array"
          > SOAP-ENC:arrayType="xsd:anyType[5]">
          > <item>
          > <name xsi:type="xsd:string">Technology Coordinator</name>
          > <id xsi:type="xsd:int">1</id>
          > <rank xsi:type="xsd:int">7</rank>
          > <description xsi:type="xsd:string">Technology Coordinator</description>
          > </item>
          > </SOAP-ENC:Array>
          > </namesp7:getRolesResponse>
          > </SOAP-ENV:Body>
          > </SOAP-ENV:Envelope>
          >
          > Example successful SOAP exchange:
          >
          > Client Sends:
          > <s:Envelope
          > xmlns:SOAP-ENC="http://www.w3.org/2001/06/soap-encoding"
          > s:encodingStyle="http://www.w3.org/2001/06/soap-encoding"
          > xmlns:s="http://www.w3.org/2001/06/soap-envelope"
          > xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
          > xmlns:xsd="http://www.w3.org/2001/XMLSchema">
          > <s:Body>
          > <m:getRoles xmlns:m="http://devlinux02.ena.com/Person">
          > <c-gensym3 xsi:type="xsd:string">communityId</c-gensym3>
          > <c-gensym5 xsi:type="xsd:int">3277</c-gensym5>
          > </m:getRoles>
          > </s:Body>
          > </s:Envelope>
          >
          > Server responds:
          > <?xml version="1.0" encoding="UTF-8"?>
          > <SOAP-ENV:Envelope
          > xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
          > xmlns:SOAP-ENC="http://www.w3.org/2001/06/soap-encoding"
          > xmlns:SOAP-ENV="http://www.w3.org/2001/06/soap-envelope"
          > xmlns:xsd="http://www.w3.org/2001/XMLSchema"
          >
          > SOAP-ENV:encodingStyle="http://www.w3.org/2001/06/soap-encoding">
          > <SOAP-ENV:Body>
          > <namesp8:getRolesResponse
          > xmlns:namesp8="http://devlinux02.ena.com/Person">
          > <SOAP-ENC:Array xsi:type="SOAP-ENC:Array"
          > SOAP-ENC:arrayType="xsd:anyType[5]">
          > <item>
          > <name xsi:type="xsd:string">Technology Coordinator</name>
          > <id xsi:type="xsd:int">1</id>
          > <rank xsi:type="xsd:int">7</rank>
          > <description xsi:type="xsd:string">Technology Coordinator</description>
          > </item>
          > </SOAP-ENC:Array>
          > </namesp8:getRolesResponse>
          > </SOAP-ENV:Body>
          > </SOAP-ENV:Envelope>
          >
          >
          > Points of Interest:
          > Error Response:
          > <SOAP-ENV:Envelope
          > xmlns:SOAP-ENC="http://www.w3.org/2001/06/soap-encoding"
          > xmlns:SOAP-ENV="http://www.w3.org/2001/06/soap-envelope"
          >
          > SOAP-ENV:encodingStyle="http://www.w3.org/2001/06/soap-encoding">
          >
          > Success Response:
          > <SOAP-ENV:Envelope
          > xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
          > xmlns:SOAP-ENC="http://www.w3.org/2001/06/soap-encoding"
          > xmlns:SOAP-ENV="http://www.w3.org/2001/06/soap-envelope"
          > xmlns:xsd="http://www.w3.org/2001/XMLSchema"
          >
          > SOAP-ENV:encodingStyle="http://www.w3.org/2001/06/soap-encoding">
          >
          > If you notice in the failed responses, the "xmlns:xsi" and "xmlns:xsd"
          > pieces of the envelope are missing. I guess my question is; what causes
          > this behavior? And, how do I keep it from happening in a system that
          > will in all likelihood be used by clients that are SOAP 1.1 and clients
          > that are SOAP 1.2. Of course, the SOAP version part could be a
          > red-herring and the answer could lie else where.
          >
          > Sorry for the verbosity of this message, but this has really stumped me
          > and I would like to get it solved before the application goes live.
          >
          > Thanks in advanced for the help.
          >
          > Joe Breeden
          > Education Networks of America
          > jbreeden at ena dot com
          >
          >
          > ------------------------------------------------------------------------
          > *Yahoo! Groups Links*
          >
          > * To visit your group on the web, go to:
          > http://groups.yahoo.com/group/soaplite/
          >
          > * To unsubscribe from this group, send an email to:
          > soaplite-unsubscribe@yahoogroups.com
          > <mailto:soaplite-unsubscribe@yahoogroups.com?subject=Unsubscribe>
          >
          > * Your use of Yahoo! Groups is subject to the Yahoo! Terms of
          > Service <http://docs.yahoo.com/info/terms/>.
          >
          >
        Your message has been successfully submitted and would be delivered to recipients shortly.