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

Re: Re: New to SOAP:Lite: Can't use a WS written in Java with Axis...

Expand Messages
  • Ivan Venuti
    thanks to anyone who has written. The error is: Fault :org.xml.sax.SAXException: SimpleDeserializer encountered a child element, which is NOT expected, in
    Message 1 of 7 , Apr 15, 2005
      thanks to anyone who has written.

      The error is:

      Fault :org.xml.sax.SAXException: SimpleDeserializer
      encountered a child
      element, which is NOT expected, in something it was
      trying to
      deserialize.
      Faultcode :soapenv:Server.userException
      Faultdetail :hostnamealpha

      So there is some problem in the message.
      I've tested the message arrived from Perl client:

      <?xml version="1.0" encoding="utf-8"?>
      <soap:Envelope
      soap:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"


      xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
      xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/"


      xmlns:xsd="http://www.w3.org/2001/XMLSchema"
      xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
      <soap:Body>
      <namesp1:productsList
      xmlns:namesp1="ProductsExampleWS">
      <c-gensym3
      xsi:type="xsd:date">1970-10-12</c-gensym3>
      </namesp1:productsList>
      </soap:Body>
      </soap:Envelope>


      This is one (good) generated by an axis client:

      <?xml version="1.0" encoding="utf-8"?>
      <soapenv:Envelope

      xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
      xmlns:xsd="http://www.w3.org/2001/XMLSchema"

      xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
      <soapenv:Body>
      <ElementDate
      xmlns="http://ivenuti.altervista.org/ProductsExampleWS.xsd1">2005-04-14</ElementDate>
      </soapenv:Body>
      </soapenv:Envelope>

      (generated correctly from the WSDL locate at the
      public site

      http://www.caribel.it:8080/axis/services/ProductsExampleWSPort?wsdl)
      I'm using document/literal...


      -- Ivan





      ___________________________________
      Nuovo Yahoo! Messenger: E' molto più divertente: Audibles, Avatar, Webcam, Giochi, Rubrica… Scaricalo ora!
      http://it.messenger.yahoo.it
    • Graham Irvine
      ... xmlns= http://ivenuti.altervista.org/ProductsExampleWS.xsd1 2005-04-14 ... This should create the same soap request as the Axis Client. ====
      Message 2 of 7 , Apr 15, 2005
        --- In soaplite@yahoogroups.com, Ivan Venuti <ivanvenuti@y...> wrote:
        > thanks to anyone who has written.
        >
        > The error is:
        >
        > Fault :org.xml.sax.SAXException: SimpleDeserializer
        > encountered a child
        > element, which is NOT expected, in something it was
        > trying to
        > deserialize.
        > Faultcode :soapenv:Server.userException
        > Faultdetail :hostnamealpha
        >
        > So there is some problem in the message.
        > I've tested the message arrived from Perl client:
        >
        > <?xml version="1.0" encoding="utf-8"?>
        > <soap:Envelope
        > soap:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
        >
        >
        > xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        > xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/"
        >
        >
        > xmlns:xsd="http://www.w3.org/2001/XMLSchema"
        > xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
        > <soap:Body>
        > <namesp1:productsList
        > xmlns:namesp1="ProductsExampleWS">
        > <c-gensym3
        > xsi:type="xsd:date">1970-10-12</c-gensym3>
        > </namesp1:productsList>
        > </soap:Body>
        > </soap:Envelope>
        >
        >
        > This is one (good) generated by an axis client:
        >
        > <?xml version="1.0" encoding="utf-8"?>
        > <soapenv:Envelope
        >
        > xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
        > xmlns:xsd="http://www.w3.org/2001/XMLSchema"
        >
        > xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
        > <soapenv:Body>
        > <ElementDate
        >
        xmlns="http://ivenuti.altervista.org/ProductsExampleWS.xsd1">2005-04-14</ElementDate>
        > </soapenv:Body>
        > </soapenv:Envelope>

        This should create the same soap request as the Axis Client.

        ====
        use SOAP::Lite;

        # Your Variables - set accordingly
        my $proxy='http://www.yourwebserviceurl.com/blahblah.wsdl';
        my $uri='http://invenuti.altervista.org/ProductExamlpeWS.xsd1';
        my $date = "2005-04-11";

        my $soap = SOAP::Lite
        ->uri($uri)
        ->on_action( sub {join '/',$uri,$_[1]} )
        ->proxy($proxy);

        my $method=SOAP::Data->name('productsList')
        ->attr({xmlns => $uri});

        my @params;

        my $request= SOAP::Data
        ->name(ElementDate)->value($date)->type('string');

        push @params,$request;

        my $result = $soap->call($method => @params);

        if ($result->fault){
        print $result->faultstring;
        }
        else{
        print $result->result;
        }
      • Ivan Venuti
        My forwarded message seems to be quite difficult to read! here is a re-post much more easy to read. First of all seems that the generated SOAP message is still
        Message 3 of 7 , Apr 15, 2005
          My forwarded message seems to be quite difficult to
          read! here is a re-post much more easy to read.

          First of all seems that the generated SOAP message is
          still unreadable by Axis; this is the message
          generated by Perl:

          <?xml version="1.0" encoding="utf-8"?>
          <soap:Envelope
          soap:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
          xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/"
          xmlns:xsd="http://www.w3.org/2001/XMLSchema"
          xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
          <soap:Body>
          <productsList
          xmlns="http://ivenuti.altervista.org/ProductsExampleWS.xsd1">
          <ElementDate
          xsi:type="xsd:date">2005-04-11</ElementDate>
          </productsList>
          </soap:Body>
          </soap:Envelope>

          This one is generated by the Axis client:

          <?xml version="1.0" encoding="utf-8"?>
          <soapenv:Envelope

          xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
          xmlns:xsd="http://www.w3.org/2001/XMLSchema"

          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
          <soapenv:Body>
          <ElementDate
          xmlns="http://ivenuti.altervista.org/ProductsExampleWS.xsd1">2005-04-14</ElementDate>
          </soapenv:Body>
          </soapenv:Envelope>

          They are quite similar but the second one hasn’t the
          element <productsList ..> in the SOAP:Body.

          The code, originated from the code given in the list
          but with some corrections (e.g. made a date and not a
          string in order to achieve the xsd type):

          use strict;
          use SOAP::Lite +trace => qw (debug);

          # Your Variables - set accordingly
          my
          $proxy='http://www.caribel.it:8080/axis/services/ProductsExampleWSPort?wsdl';
          my
          $uri='http://ivenuti.altervista.org/ProductsExampleWS.xsd1';
          my $date = "2005-04-11";

          my $soap = SOAP::Lite
          ->uri($uri)
          ->on_action( sub {join '/',$uri,$_[1]} )
          ->proxy($proxy);

          my
          $method=SOAP::Data->name('productsList')->attr({xmlns
          => $uri});

          my @params;

          my $request=
          SOAP::Data->name('ElementDate')->value($date)->type('date');

          push @params,$request;

          my $result = $soap->call($method => @params);

          if ($result->fault){
          print $result->faultstring;
          }
          else{
          print $result->result;
          }

          The error trace is quite similar to the previous one:


          SOAP::Transport::HTTP::Client::send_receive: POST
          http://www.caribel.it:8080/axi
          s/services/ProductsExampleWSPort?wsdl HTTP/1.1
          Accept: text/xml
          Accept: multipart/*
          Accept: application/soap
          Content-Length: 514
          Content-Type: text/xml; charset=utf-8
          SOAPAction:
          http://ivenuti.altervista.org/ProductsExampleWS.xsd1/productsList

          <?xml version="1.0" encoding="UTF-8"?><soap:Envelope
          xmlns:xsi="http://www.w3.or
          g/2001/XMLSchema-instance"
          xmlns:soapenc="http://schemas.xmlsoap.org/soap/encodi
          ng/" xmlns:xsd="http://www.w3.org/2001/XMLSchema"
          soap:encodingStyle="http://sch
          emas.xmlsoap.org/soap/encoding/"
          xmlns:soap="http://schemas.xmlsoap.org/soap/env
          elope/"><soap:Body><productsList
          xmlns="http://ivenuti.altervista.org/ProductsEx
          ampleWS.xsd1"><ElementDate
          xsi:type="xsd:date">2005-04-11</ElementDate></product
          sList></soap:Body></soap:Envelope>
          SOAP::Transport::HTTP::Client::send_receive: HTTP/1.1
          500 Internal
          Server Error
          Connection: close
          Date: Fri, 15 Apr 2005 16:08:02 GMT
          Server: Apache-Coyote/1.1
          Content-Type: text/xml;charset=utf-8
          Client-Date: Fri, 15 Apr 2005 16:06:42 GMT
          Client-Peer: 151.4.110.70:8080
          Client-Response-Num: 1

          <?xml version="1.0"
          encoding="utf-8"?><soapenv:Envelope
          xmlns:soapenv="http://sc
          hemas.xmlsoap.org/soap/envelope/"
          xmlns:xsd="http://www.w3.org/2001/XMLSchema" x
          mlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
          <soapenv:Body><soapenv:Fault>
          <faultcode>soapenv:Server.userException</faultcode>
          <faultstring>org.xml.sax.SAXException:
          SimpleDeserializer encountered a child element, which
          is NOT expected, in something it was trying to
          deserialize.</faultstring>
          <detail><ns1:hostname
          xmlns:ns1="http://xml.apache.org/axis/">alpha</ns1:hostname></detail></soapenv:
          Fault></soapenv:Body></soapenv:Envelope>
          org.xml.sax.SAXException: SimpleDeserializer
          encountered a child
          element, which
          is NOT expected, in something it was trying to
          deserialize.




          ___________________________________
          Nuovo Yahoo! Messenger: E' molto più divertente: Audibles, Avatar, Webcam, Giochi, Rubrica… Scaricalo ora!
          http://it.messenger.yahoo.it
        • Graham Irvine
          mmm .. yes thats a tough one . Document Literal Encoding , no method element . Im not sure if SOAP::Lite can handle that yet ? perhaps someone else can help ?.
          Message 4 of 7 , Apr 16, 2005
            mmm .. yes thats a tough one . Document Literal Encoding , no method
            element .

            Im not sure if SOAP::Lite can handle that yet ? perhaps someone else
            can help ?.

            I tried creating a new serializer object and sending in type "xml"
            creating the SOAP::DATA as an xml string but it wouldnt have it .

            In the end I had to do it by hand. (see below)

            I will keep trying to find a SOAP::Lite solution and post it if i do.

            meanwhile here is a big perl code you could use to do what you want.

            #!/usr/bin/perl -w

            use strict;

            use LWP::UserAgent;
            use HTTP::Request::Common;

            my $proxy =
            "http://www.caribel.it:8080/axis/services/ProductsExampleWSPort";
            my $uri='http://ivenuti.altervista.org/ProductsExampleWS.xsd1';
            my $action = "$uri/productsList";
            my $date = "2005-04-11";

            my $userAgent = LWP::UserAgent->new(agent => 'Perl SOAP');

            my $message = "<?xml version=\"1.0\" encoding=\"utf-8\"?>
            <soapenv:Envelope
            xmlns:soapenv=\"http://schemas.xmlsoap.org/soap/envelope/\"
            xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\"
            xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\">
            <soapenv:Body>
            <ElementDate
            xmlns=\"http://ivenuti.altervista.org/ProductsExampleWS.xsd1\">$date</ElementDate>
            </soapenv:Body>
            </soapenv:Envelope>";

            my $response = $userAgent->request(POST $proxy,
            Content_Type => 'text/xml',
            SOAPAction => $action,
            Content => $message);

            print $response->error_as_HTML unless $response->is_success;
            print $response->as_string;

            --- In soaplite@yahoogroups.com, Ivan Venuti <ivanvenuti@y...> wrote:
            > My forwarded message seems to be quite difficult to
            > read! here is a re-post much more easy to read.
            >
            > First of all seems that the generated SOAP message is
            > still unreadable by Axis; this is the message
            > generated by Perl:
            >
            > <?xml version="1.0" encoding="utf-8"?>
            > <soap:Envelope
            > soap:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
            > xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
            > xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/"
            > xmlns:xsd="http://www.w3.org/2001/XMLSchema"
            > xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
            > <soap:Body>
            > <productsList
            > xmlns="http://ivenuti.altervista.org/ProductsExampleWS.xsd1">
            > <ElementDate
            > xsi:type="xsd:date">2005-04-11</ElementDate>
            > </productsList>
            > </soap:Body>
            > </soap:Envelope>
            >
            > This one is generated by the Axis client:
            >
            > <?xml version="1.0" encoding="utf-8"?>
            > <soapenv:Envelope
            >
            > xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
            > xmlns:xsd="http://www.w3.org/2001/XMLSchema"
            >
            > xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
            > <soapenv:Body>
            > <ElementDate
            >
            xmlns="http://ivenuti.altervista.org/ProductsExampleWS.xsd1">2005-04-14</ElementDate>
            > </soapenv:Body>
            > </soapenv:Envelope>
            >
            > They are quite similar but the second one hasn't the
            > element <productsList ..> in the SOAP:Body.
            >
            > The code, originated from the code given in the list
            > but with some corrections (e.g. made a date and not a
            > string in order to achieve the xsd type):
            >
            > use strict;
            > use SOAP::Lite +trace => qw (debug);
            >
            > # Your Variables - set accordingly
            > my
            >
            $proxy='http://www.caribel.it:8080/axis/services/ProductsExampleWSPort?wsdl';
            > my
            > $uri='http://ivenuti.altervista.org/ProductsExampleWS.xsd1';
            > my $date = "2005-04-11";
            >
            > my $soap = SOAP::Lite
            > ->uri($uri)
            > ->on_action( sub {join '/',$uri,$_[1]} )
            > ->proxy($proxy);
            >
            > my
            > $method=SOAP::Data->name('productsList')->attr({xmlns
            > => $uri});
            >
            > my @params;
            >
            > my $request=
            > SOAP::Data->name('ElementDate')->value($date)->type('date');
            >
            > push @params,$request;
            >
            > my $result = $soap->call($method => @params);
            >
            > if ($result->fault){
            > print $result->faultstring;
            > }
            > else{
            > print $result->result;
            > }
            >
            > The error trace is quite similar to the previous one:
            >
            >
            > SOAP::Transport::HTTP::Client::send_receive: POST
            > http://www.caribel.it:8080/axi
            > s/services/ProductsExampleWSPort?wsdl HTTP/1.1
            > Accept: text/xml
            > Accept: multipart/*
            > Accept: application/soap
            > Content-Length: 514
            > Content-Type: text/xml; charset=utf-8
            > SOAPAction:
            > http://ivenuti.altervista.org/ProductsExampleWS.xsd1/productsList
            >
            > <?xml version="1.0" encoding="UTF-8"?><soap:Envelope
            > xmlns:xsi="http://www.w3.or
            > g/2001/XMLSchema-instance"
            > xmlns:soapenc="http://schemas.xmlsoap.org/soap/encodi
            > ng/" xmlns:xsd="http://www.w3.org/2001/XMLSchema"
            > soap:encodingStyle="http://sch
            > emas.xmlsoap.org/soap/encoding/"
            > xmlns:soap="http://schemas.xmlsoap.org/soap/env
            > elope/"><soap:Body><productsList
            > xmlns="http://ivenuti.altervista.org/ProductsEx
            > ampleWS.xsd1"><ElementDate
            > xsi:type="xsd:date">2005-04-11</ElementDate></product
            > sList></soap:Body></soap:Envelope>
            > SOAP::Transport::HTTP::Client::send_receive: HTTP/1.1
            > 500 Internal
            > Server Error
            > Connection: close
            > Date: Fri, 15 Apr 2005 16:08:02 GMT
            > Server: Apache-Coyote/1.1
            > Content-Type: text/xml;charset=utf-8
            > Client-Date: Fri, 15 Apr 2005 16:06:42 GMT
            > Client-Peer: 151.4.110.70:8080
            > Client-Response-Num: 1
            >
            > <?xml version="1.0"
            > encoding="utf-8"?><soapenv:Envelope
            > xmlns:soapenv="http://sc
            > hemas.xmlsoap.org/soap/envelope/"
            > xmlns:xsd="http://www.w3.org/2001/XMLSchema" x
            > mlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
            > <soapenv:Body><soapenv:Fault>
            > <faultcode>soapenv:Server.userException</faultcode>
            > <faultstring>org.xml.sax.SAXException:
            > SimpleDeserializer encountered a child element, which
            > is NOT expected, in something it was trying to
            > deserialize.</faultstring>
            > <detail><ns1:hostname
            >
            xmlns:ns1="http://xml.apache.org/axis/">alpha</ns1:hostname></detail></soapenv:
            > Fault></soapenv:Body></soapenv:Envelope>
            > org.xml.sax.SAXException: SimpleDeserializer
            > encountered a child
            > element, which
            > is NOT expected, in something it was trying to
            > deserialize.
            >
            >
            >
            >
            > ___________________________________
            > Nuovo Yahoo! Messenger: E' molto più divertente: Audibles, Avatar,
            Webcam, Giochi, Rubrica… Scaricalo ora!
            > http://it.messenger.yahoo.it
          • Ivan Venuti
            thanks Graham: it works! Unfortunatly the solution seems too much ad hoc one and pporly based on my WSDL :) Thank again, I open another thread for
            Message 5 of 7 , Apr 16, 2005
              thanks Graham: it works!
              Unfortunatly the solution seems too much "ad hoc" one
              and pporly based on my WSDL :)

              Thank again, I open another thread for
              document/literal support...

              -- Ivan

              --- Graham Irvine <graham@...> ha
              scritto:

              ---------------------------------

              mmm .. yes thats a tough one . Document Literal
              Encoding , no method
              element .

              Im not sure if SOAP::Lite can handle that yet ?
              perhaps someone else
              can help ?.

              I tried creating a new serializer object and sending
              in type "xml"
              creating the SOAP::DATA as an xml string but it
              wouldnt have it .

              In the end I had to do it by hand. (see below)

              I will keep trying to find a SOAP::Lite solution and
              post it if i do.

              meanwhile here is a big perl code you could use to do
              what you want.

              #!/usr/bin/perl -w

              use strict;

              use LWP::UserAgent;
              use HTTP::Request::Common;

              my $proxy =
              "http://www.caribel.it:8080/axis/services/ProductsExampleWSPort";
              my
              $uri='http://ivenuti.altervista.org/ProductsExampleWS.xsd1';
              my $action = "$uri/productsList";
              my $date = "2005-04-11";

              my $userAgent = LWP::UserAgent->new(agent => 'Perl
              SOAP');

              my $message = "<?xml version=\"1.0\"
              encoding=\"utf-8\"?>
              <soapenv:Envelope
              xmlns:soapenv=\"http://schemas.xmlsoap.org/soap/envelope/\"
              xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\"
              xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\">
              <soapenv:Body>
              <ElementDate
              xmlns=\"http://ivenuti.altervista.org/ProductsExampleWS.xsd1\">$date</ElementDate>
              </soapenv:Body>
              </soapenv:Envelope>";

              my $response = $userAgent->request(POST $proxy,
              Content_Type => 'text/xml',
              SOAPAction => $action,
              Content => $message);

              print $response->error_as_HTML unless
              $response->is_success;
              print $response->as_string;

              --- In soaplite@yahoogroups.com, Ivan Venuti
              <ivanvenuti@y...> wrote:
              > My forwarded message seems to be quite difficult to
              > read! here is a re-post much more easy to read.
              >
              > First of all seems that the generated SOAP message
              is
              > still unreadable by Axis; this is the message
              > generated by Perl:
              >
              > <?xml version="1.0" encoding="utf-8"?>
              > <soap:Envelope
              >
              soap:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
              >
              xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
              >
              xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/"
              > xmlns:xsd="http://www.w3.org/2001/XMLSchema"
              >
              xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
              > <soap:Body>
              > <productsList
              >
              xmlns="http://ivenuti.altervista.org/ProductsExampleWS.xsd1">
              > <ElementDate
              > xsi:type="xsd:date">2005-04-11</ElementDate>
              > </productsList>
              > </soap:Body>
              > </soap:Envelope>
              >
              > This one is generated by the Axis client:
              >
              > <?xml version="1.0" encoding="utf-8"?>
              > <soapenv:Envelope
              >
              >
              xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
              > xmlns:xsd="http://www.w3.org/2001/XMLSchema"
              >
              >
              xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
              > <soapenv:Body>
              > <ElementDate
              >
              xmlns="http://ivenuti.altervista.org/ProductsExampleWS.xsd1">2005-04-14</ElementDate>
              > </soapenv:Body>
              > </soapenv:Envelope>
              >
              > They are quite similar but the second one hasn't the
              > element <productsList ..> in the SOAP:Body.
              >
              > The code, originated from the code given in the list
              > but with some corrections (e.g. made a date and not
              a
              > string in order to achieve the xsd type):
              >
              > use strict;
              > use SOAP::Lite +trace => qw (debug);
              >
              > # Your Variables - set accordingly
              > my
              >
              $proxy='http://www.caribel.it:8080/axis/services/ProductsExampleWSPort?wsdl';
              > my
              >
              $uri='http://ivenuti.altervista.org/ProductsExampleWS.xsd1';
              > my $date = "2005-04-11";
              >
              > my $soap = SOAP::Lite
              > ->uri($uri)
              > ->on_action( sub {join '/',$uri,$_[1]} )
              > ->proxy($proxy);
              >
              > my
              >
              $method=SOAP::Data->name('productsList')->attr({xmlns
              > => $uri});
              >
              > my @params;
              >
              > my $request=
              >
              SOAP::Data->name('ElementDate')->value($date)->type('date');
              >
              > push @params,$request;
              >
              > my $result = $soap->call($method => @params);
              >
              > if ($result->fault){
              > print $result->faultstring;
              > }
              > else{
              > print $result->result;
              > }
              >
              > The error trace is quite similar to the previous
              one:
              >
              >
              > SOAP::Transport::HTTP::Client::send_receive: POST
              > http://www.caribel.it:8080/axi
              > s/services/ProductsExampleWSPort?wsdl HTTP/1.1
              > Accept: text/xml
              > Accept: multipart/*
              > Accept: application/soap
              > Content-Length: 514
              > Content-Type: text/xml; charset=utf-8
              > SOAPAction:
              >
              http://ivenuti.altervista.org/ProductsExampleWS.xsd1/productsList
              >
              > <?xml version="1.0" encoding="UTF-8"?><soap:Envelope
              > xmlns:xsi="http://www.w3.or
              > g/2001/XMLSchema-instance"
              >
              xmlns:soapenc="http://schemas.xmlsoap.org/soap/encodi
              > ng/" xmlns:xsd="http://www.w3.org/2001/XMLSchema"
              > soap:encodingStyle="http://sch
              > emas.xmlsoap.org/soap/encoding/"
              > xmlns:soap="http://schemas.xmlsoap.org/soap/env
              > elope/"><soap:Body><productsList
              > xmlns="http://ivenuti.altervista.org/ProductsEx
              > ampleWS.xsd1"><ElementDate
              >
              xsi:type="xsd:date">2005-04-11</ElementDate></product
              > sList></soap:Body></soap:Envelope>
              > SOAP::Transport::HTTP::Client::send_receive:
              HTTP/1.1
              > 500 Internal
              > Server Error
              > Connection: close
              > Date: Fri, 15 Apr 2005 16:08:02 GMT
              > Server: Apache-Coyote/1.1
              > Content-Type: text/xml;charset=utf-8
              > Client-Date: Fri, 15 Apr 2005 16:06:42 GMT
              > Client-Peer: 151.4.110.70:8080
              > Client-Response-Num: 1
              >
              > <?xml version="1.0"
              > encoding="utf-8"?><soapenv:Envelope
              > xmlns:soapenv="http://sc
              > hemas.xmlsoap.org/soap/envelope/"
              > xmlns:xsd="http://www.w3.org/2001/XMLSchema" x
              >
              mlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
              > <soapenv:Body><soapenv:Fault>
              > <faultcode>soapenv:Server.userException</faultcode>
              > <faultstring>org.xml.sax.SAXException:
              > SimpleDeserializer encountered a child element,
              which
              > is NOT expected, in something it was trying to
              > deserialize.</faultstring>
              > <detail><ns1:hostname
              >
              xmlns:ns1="http://xml.apache.org/axis/">alpha</ns1:hostname></detail></soapenv:
              > Fault></soapenv:Body></soapenv:Envelope>
              > org.xml.sax.SAXException: SimpleDeserializer
              > encountered a child
              > element, which
              > is NOT expected, in something it was trying to
              > deserialize.
              >
              >
              >
              >
              > ___________________________________
              > Nuovo Yahoo! Messenger: E' molto più divertente:
              Audibles, Avatar,
              Webcam, Giochi, Rubrica… Scaricalo ora!
              > http://it.messenger.yahoo.it





              ---------------------------------
              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

              Your use of Yahoo! Groups is subject to the Yahoo!
              Terms of Service.




              ___________________________________
              Nuovo Yahoo! Messenger: E' molto più divertente: Audibles, Avatar, Webcam, Giochi, Rubrica… Scaricalo ora!
              http://it.messenger.yahoo.it
            • Graham Irvine
              Hi Ivan ... request so im not sure if there is much difference there ... However if you need to stick with soap::lite I have in the past had some joy with
              Message 6 of 7 , Apr 16, 2005
                Hi Ivan

                :) SOAP::Lite doesnt read from the WSDL either to generate its
                request so im not sure if there is much difference there ...

                However if you need to stick with soap::lite I have in the past had
                some joy with SOAP-WSDL module which does do that , and uses
                SOAP::Lite to make the calls. It might be of help.

                It was a useful way to get .NET compatibility for version <0.55 if you
                were connecting to a lot of service methods without hand coding them.

                Graham

                --- In soaplite@yahoogroups.com, Ivan Venuti <ivanvenuti@y...> wrote:
                > thanks Graham: it works!
                > Unfortunatly the solution seems too much "ad hoc" one
                > and pporly based on my WSDL :)
                >
                > Thank again, I open another thread for
                > document/literal support...
                >
                > -- Ivan
                >
                > --- Graham Irvine <graham@g...> ha
                > scritto:
                >
                > ---------------------------------
                >
                > mmm .. yes thats a tough one . Document Literal
                > Encoding , no method
                > element .
                >
                > Im not sure if SOAP::Lite can handle that yet ?
                > perhaps someone else
                > can help ?.
                >
                > I tried creating a new serializer object and sending
                > in type "xml"
                > creating the SOAP::DATA as an xml string but it
                > wouldnt have it .
                >
                > In the end I had to do it by hand. (see below)
                >
                > I will keep trying to find a SOAP::Lite solution and
                > post it if i do.
                >
                > meanwhile here is a big perl code you could use to do
                > what you want.
                >
                > #!/usr/bin/perl -w
                >
                > use strict;
                >
                > use LWP::UserAgent;
                > use HTTP::Request::Common;
                >
                > my $proxy =
                > "http://www.caribel.it:8080/axis/services/ProductsExampleWSPort";
                > my
                > $uri='http://ivenuti.altervista.org/ProductsExampleWS.xsd1';
                > my $action = "$uri/productsList";
                > my $date = "2005-04-11";
                >
                > my $userAgent = LWP::UserAgent->new(agent => 'Perl
                > SOAP');
                >
                > my $message = "<?xml version=\"1.0\"
                > encoding=\"utf-8\"?>
                > <soapenv:Envelope
                > xmlns:soapenv=\"http://schemas.xmlsoap.org/soap/envelope/\"
                > xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\"
                > xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\">
                > <soapenv:Body>
                > <ElementDate
                >
                xmlns=\"http://ivenuti.altervista.org/ProductsExampleWS.xsd1\">$date</ElementDate>
                > </soapenv:Body>
                > </soapenv:Envelope>";
                >
                > my $response = $userAgent->request(POST $proxy,
                > Content_Type => 'text/xml',
                > SOAPAction => $action,
                > Content => $message);
                >
                > print $response->error_as_HTML unless
                > $response->is_success;
                > print $response->as_string;
                >
                > --- In soaplite@yahoogroups.com, Ivan Venuti
                > <ivanvenuti@y...> wrote:
                > > My forwarded message seems to be quite difficult to
                > > read! here is a re-post much more easy to read.
                > >
                > > First of all seems that the generated SOAP message
                > is
                > > still unreadable by Axis; this is the message
                > > generated by Perl:
                > >
                > > <?xml version="1.0" encoding="utf-8"?>
                > > <soap:Envelope
                > >
                > soap:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
                > >
                > xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
                > >
                > xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/"
                > > xmlns:xsd="http://www.w3.org/2001/XMLSchema"
                > >
                > xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
                > > <soap:Body>
                > > <productsList
                > >
                > xmlns="http://ivenuti.altervista.org/ProductsExampleWS.xsd1">
                > > <ElementDate
                > > xsi:type="xsd:date">2005-04-11</ElementDate>
                > > </productsList>
                > > </soap:Body>
                > > </soap:Envelope>
                > >
                > > This one is generated by the Axis client:
                > >
                > > <?xml version="1.0" encoding="utf-8"?>
                > > <soapenv:Envelope
                > >
                > >
                > xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
                > > xmlns:xsd="http://www.w3.org/2001/XMLSchema"
                > >
                > >
                > xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
                > > <soapenv:Body>
                > > <ElementDate
                > >
                >
                xmlns="http://ivenuti.altervista.org/ProductsExampleWS.xsd1">2005-04-14</ElementDate>
                > > </soapenv:Body>
                > > </soapenv:Envelope>
                > >
                > > They are quite similar but the second one hasn't the
                > > element <productsList ..> in the SOAP:Body.
                > >
                > > The code, originated from the code given in the list
                > > but with some corrections (e.g. made a date and not
                > a
                > > string in order to achieve the xsd type):
                > >
                > > use strict;
                > > use SOAP::Lite +trace => qw (debug);
                > >
                > > # Your Variables - set accordingly
                > > my
                > >
                >
                $proxy='http://www.caribel.it:8080/axis/services/ProductsExampleWSPort?wsdl';
                > > my
                > >
                > $uri='http://ivenuti.altervista.org/ProductsExampleWS.xsd1';
                > > my $date = "2005-04-11";
                > >
                > > my $soap = SOAP::Lite
                > > ->uri($uri)
                > > ->on_action( sub {join '/',$uri,$_[1]} )
                > > ->proxy($proxy);
                > >
                > > my
                > >
                > $method=SOAP::Data->name('productsList')->attr({xmlns
                > > => $uri});
                > >
                > > my @params;
                > >
                > > my $request=
                > >
                > SOAP::Data->name('ElementDate')->value($date)->type('date');
                > >
                > > push @params,$request;
                > >
                > > my $result = $soap->call($method => @params);
                > >
                > > if ($result->fault){
                > > print $result->faultstring;
                > > }
                > > else{
                > > print $result->result;
                > > }
                > >
                > > The error trace is quite similar to the previous
                > one:
                > >
                > >
                > > SOAP::Transport::HTTP::Client::send_receive: POST
                > > http://www.caribel.it:8080/axi
                > > s/services/ProductsExampleWSPort?wsdl HTTP/1.1
                > > Accept: text/xml
                > > Accept: multipart/*
                > > Accept: application/soap
                > > Content-Length: 514
                > > Content-Type: text/xml; charset=utf-8
                > > SOAPAction:
                > >
                > http://ivenuti.altervista.org/ProductsExampleWS.xsd1/productsList
                > >
                > > <?xml version="1.0" encoding="UTF-8"?><soap:Envelope
                > > xmlns:xsi="http://www.w3.or
                > > g/2001/XMLSchema-instance"
                > >
                > xmlns:soapenc="http://schemas.xmlsoap.org/soap/encodi
                > > ng/" xmlns:xsd="http://www.w3.org/2001/XMLSchema"
                > > soap:encodingStyle="http://sch
                > > emas.xmlsoap.org/soap/encoding/"
                > > xmlns:soap="http://schemas.xmlsoap.org/soap/env
                > > elope/"><soap:Body><productsList
                > > xmlns="http://ivenuti.altervista.org/ProductsEx
                > > ampleWS.xsd1"><ElementDate
                > >
                > xsi:type="xsd:date">2005-04-11</ElementDate></product
                > > sList></soap:Body></soap:Envelope>
                > > SOAP::Transport::HTTP::Client::send_receive:
                > HTTP/1.1
                > > 500 Internal
                > > Server Error
                > > Connection: close
                > > Date: Fri, 15 Apr 2005 16:08:02 GMT
                > > Server: Apache-Coyote/1.1
                > > Content-Type: text/xml;charset=utf-8
                > > Client-Date: Fri, 15 Apr 2005 16:06:42 GMT
                > > Client-Peer: 151.4.110.70:8080
                > > Client-Response-Num: 1
                > >
                > > <?xml version="1.0"
                > > encoding="utf-8"?><soapenv:Envelope
                > > xmlns:soapenv="http://sc
                > > hemas.xmlsoap.org/soap/envelope/"
                > > xmlns:xsd="http://www.w3.org/2001/XMLSchema" x
                > >
                > mlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
                > > <soapenv:Body><soapenv:Fault>
                > > <faultcode>soapenv:Server.userException</faultcode>
                > > <faultstring>org.xml.sax.SAXException:
                > > SimpleDeserializer encountered a child element,
                > which
                > > is NOT expected, in something it was trying to
                > > deserialize.</faultstring>
                > > <detail><ns1:hostname
                > >
                >
                xmlns:ns1="http://xml.apache.org/axis/">alpha</ns1:hostname></detail></soapenv:
                > > Fault></soapenv:Body></soapenv:Envelope>
                > > org.xml.sax.SAXException: SimpleDeserializer
                > > encountered a child
                > > element, which
                > > is NOT expected, in something it was trying to
                > > deserialize.
                > >
                > >
                > >
                > >
                > > ___________________________________
                > > Nuovo Yahoo! Messenger: E' molto più divertente:
                > Audibles, Avatar,
                > Webcam, Giochi, Rubrica… Scaricalo ora!
                > > http://it.messenger.yahoo.it
                >
                >
                >
                >
                >
                > ---------------------------------
                > 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
                >
                > Your use of Yahoo! Groups is subject to the Yahoo!
                > Terms of Service.
                >
                >
                >
                >
                > ___________________________________
                > Nuovo Yahoo! Messenger: E' molto più divertente: Audibles, Avatar,
                Webcam, Giochi, Rubrica… Scaricalo ora!
                > http://it.messenger.yahoo.it
              • Ivan Venuti
                I ve given a look at SOAP::WSDL. This is my example (the same as previously posted but using only SOAP::Lite): use strict; use SOAP::WSDL; my
                Message 7 of 7 , Apr 16, 2005
                  I've given a look at SOAP::WSDL. This is my example
                  (the same as previously posted but using only
                  SOAP::Lite):


                  use strict;
                  use SOAP::WSDL;

                  my
                  $wsdl_uri='http://127.0.0.1:8080/axis/services/ProductsExampleWSPort?wsdl';
                  my
                  $wsdl_proxy='http://127.0.0.1:8080/axis/services/ProductsExampleWSPort';

                  my $soap=SOAP::WSDL->new( wsdl => $wsdl_uri)->proxy(
                  $wsdl_proxy );
                  $soap->wsdlinit;

                  print $soap->call( "productsList", "2000-01-01" );


                  The error is:

                  Error processing WSDL: cannot find input message for
                  method 'productsOrderConfirmation'
                  (/wsdl:definitions/wsdl:portType[@name='ProductsExampleWSPort']/wsdl:operation[@name='productsOrderConfirmation']/wsdl:input/@message)
                  at C:/Perl/site/lib/SOAP/WSDL.pm line 146.

                  Any idea about this kind of error?

                  I've also tried:

                  use SOAP::WSDL +trace => qw (debug)
                  but without any other message...

                  p.s. is this the right place to ask about SOAP::WSDL?
                  If this isn't the right place, please give me
                  directions about more specific ML; thanks

                  -- Ivan



                  ___________________________________
                  Nuovo Yahoo! Messenger: E' molto più divertente:
                  Audibles, Avatar, Webcam, Giochi, Rubrica… Scaricalo
                  ora!
                  http://it.messenger.yahoo.it



                  ___________________________________
                  Nuovo Yahoo! Messenger: E' molto più divertente: Audibles, Avatar, Webcam, Giochi, Rubrica… Scaricalo ora!
                  http://it.messenger.yahoo.it
                Your message has been successfully submitted and would be delivered to recipients shortly.