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 7:41 AM
    • 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
      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
      Message 2 of 6 , Apr 21 12:16 PM
      • 0 Attachment
        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
      • Paul Kulchenko
        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
        Message 3 of 6 , Apr 21 10:28 PM
        • 0 Attachment
          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.

          --- Joe Breeden <jbreeden@...> 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
          >
          >
          >
          >
          >
        • Joe Breeden
          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
          Message 4 of 6 , Apr 22 5:30 AM
          • 0 Attachment
            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.

            --- Joe Breeden <jbreeden@...> 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
            >
            >
            >
            >
            >
          • 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 5 of 6 , Apr 22 6:58 AM
            • 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 6 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.