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/>.
      >
      >
    • 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 2 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 3 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 4 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 5 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.