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

SOAP::Lite client for Axis WebService and complex objects

Expand Messages
  • gernot_stocker
    Hi all, I have implemented a webservice with Java Axis and would like to offer my users a perl client, too. Some other people asked already questions about
    Message 1 of 11 , Jul 11, 2005
    • 0 Attachment
      Hi all,
      I have implemented a webservice with Java Axis and would like to offer
      my users a perl client, too. Some other people asked already questions
      about serializing java objects etc. on this list but they didn't get
      an answer.

      I have just ONE specific question about creating/sending a SOAP/Java
      Object back to the server. Hopefully THIS question will be answered.

      I'm using SOAP::Lite version 0.65 Beta 6 and was quite impressed by
      its functionality and its easy usage.

      I tried two ways of creating out of the wsdl file (created by axis)
      end ended up all the time with the same message:

      1.) I used the stubmaker.pl and it created me a great class:
      connecting to the service, calling methods with simple datatypes as
      arguments and getting/accessing complex objects is working fine. But
      as soon as I get an object from the server that must be send back to
      the server the client is claming that

      "JavaObjectName" can't be found in a schema class 'SOAP::Serializer'

      The object schema in the wsdl-type-definition and contains just
      simple datatypes like strings. Do I have to write a serializer for
      every custom object or is there just an error in the wsdl file?

      <wsdl:types>
      <schema targetNamespace="urn:JTestVO"
      xmlns="http://www.w3.org/2001/XMLSchema">
      <import namespace="http://xml.apache.org/xml-soap"/>
      <import namespace="http://ejb.javax"/>
      <import namespace="http://exception.myservice.localhost"/>
      <import namespace="http://localhost:8080/axis/services/myservice"/>
      <import namespace="http://schemas.xmlsoap.org/soap/encoding/"/>
      <complexType name="JTestVO">
      <sequence>
      <element name="firstname" nillable="true" type="xsd:string"/>
      <element name="lastname" nillable="true" type="xsd:string"/>
      </sequence>
      </complexType>
      </schema>
      </wsdl:types>

      results in
      "JTestVO" can't be found in a schema class 'SOAP::Serializer'

      2.) Method

      use strict;
      use SOAP::Lite;
      use Data::Dumper;
      use MIME::Entity;
      print "Calling Soap Server:\n\n";
      my $service=SOAP::Lite->service('file:./Test.xml.wsdl');
      my $id_vo=$service->getData("123123");
      print "\nTest: ".$id_vo->{"firstname"};
      my $cap=$service->getCapabilities($id_vo);

      as soon as the last method is called I get again:
      "JTestVO" can't be found in a schema class 'SOAP::Serializer'

      Please give me a hint where I can find further information or how i
      can create a custom object, which will be accepted by the webservice.

      Thanks Gernot
    • gernot_stocker
      Hi, is the answer to my questions to simple or is there no answer? It IS REALLY important for my project to solve this serializer problem as soon as possible.
      Message 2 of 11 , Jul 20, 2005
      • 0 Attachment
        Hi,
        is the answer to my questions to simple or is there no
        answer? It IS REALLY important for my project to solve
        this serializer problem as soon as possible. I tried to
        find a solution in the recommended book "Programming Web Services with
        Perl" which seems to be not up-to-date enough.

        Please give me a hint at least in a driection,
        Gernot
      • Andre Merzky
        Could you repost the question please? A. ... -- +-----------------------------------------------------------------+ ...
        Message 3 of 11 , Jul 20, 2005
        • 0 Attachment
          Could you repost the question please?

          A.


          Quoting [gernot_stocker] (Jul 20 2005):
          >
          > Hi,
          > is the answer to my questions to simple or is there no
          > answer? It IS REALLY important for my project to solve
          > this serializer problem as soon as possible. I tried to
          > find a solution in the recommended book "Programming Web Services with
          > Perl" which seems to be not up-to-date enough.
          >
          > Please give me a hint at least in a driection,
          > Gernot


          --
          +-----------------------------------------------------------------+
          | Andre Merzky | phon: +31 - 20 - 598 - 7759 |
          | Vrije Universiteit Amsterdam (VU) | fax : +31 - 20 - 598 - 7653 |
          | Dept. of Computer Science | mail: merzky@... |
          | De Boelelaan 1083a | www: http://www.merzky.net |
          | 1081 HV Amsterdam, Netherlands | |
          +-----------------------------------------------------------------+
        • gernot_stocker
          Shure... I just copied the text from my former post: Thanks for your interest Gernot Old message: Hi all, I have implemented a webservice with Java Axis and
          Message 4 of 11 , Jul 20, 2005
          • 0 Attachment
            Shure... I just copied the text from my former post:
            Thanks for your interest
            Gernot

            Old message:

            Hi all,
            I have implemented a webservice with Java Axis and would like to offer
            my users a perl client, too. Some other people asked already questions
            about serializing java objects etc. on this list but they didn't get
            an answer.

            I have just ONE specific question about creating/sending a SOAP/Java
            Object back to the server. Hopefully THIS question will be answered.

            I'm using SOAP::Lite version 0.65 Beta 6 and was quite impressed by
            its functionality and its easy usage.

            I tried two ways of creating out of the wsdl file (created by axis)
            end ended up all the time with the same message:

            1.) I used the stubmaker.pl and it created me a great class:
            connecting to the service, calling methods with simple datatypes as
            arguments and getting/accessing complex objects is working fine. But
            as soon as I get an object from the server that must be send back to
            the server the client is claming that

            "JavaObjectName" can't be found in a schema class 'SOAP::Serializer'

            The object schema in the wsdl-type-definition and contains just
            simple datatypes like strings. Do I have to write a serializer for
            every custom object or is there just an error in the wsdl file?

            <wsdl:types>
            <schema targetNamespace="urn:JTestVO"
            xmlns="http://www.w3.org/2001/XMLSchema">
            <import namespace="http://xml.apache.org/xml-soap"/>
            <import namespace="http://ejb.javax"/>
            <import namespace="http://exception.myservice.localhost"/>
            <import namespace="http://localhost:8080/axis/services/myservice"/>
            <import namespace="http://schemas.xmlsoap.org/soap/encoding/"/>
            <complexType name="JTestVO">
            <sequence>
            <element name="firstname" nillable="true" type="xsd:string"/>
            <element name="lastname" nillable="true" type="xsd:string"/>
            </sequence>
            </complexType>
            </schema>
            </wsdl:types>

            results in
            "JTestVO" can't be found in a schema class 'SOAP::Serializer'

            2.) Method

            use strict;
            use SOAP::Lite;
            use Data::Dumper;
            use MIME::Entity;
            print "Calling Soap Server:\n\n";
            my $service=SOAP::Lite->service('file:./Test.xml.wsdl');
            my $id_vo=$service->getData("123123");
            print "\nTest: ".$id_vo->{"firstname"};
            my $cap=$service->getCapabilities($id_vo);

            as soon as the last method is called I get again:
            "JTestVO" can't be found in a schema class 'SOAP::Serializer'

            Please give me a hint where I can find further information or how i
            can create a custom object, which will be accepted by the webservice.

            Thanks Gernot
          • Andre Merzky
            I am not good at WSDL files, but it seems to me it is missing a port type and operation. So, it does not specify what methods can be called. Wouldn t that be
            Message 5 of 11 , Jul 20, 2005
            • 0 Attachment
              I am not good at WSDL files, but it seems to me it is
              missing a port type and operation. So, it does not specify
              what methods can be called. Wouldn't that be crucial?

              e.g. 'getCapabilities' does not appear in your wsdl.

              But then, as said, I could be completely of target...

              Andre.


              Quoting [gernot_stocker] (Jul 20 2005):
              > Comment: DomainKeys? See http://antispam.yahoo.com/domainkeys
              > Comment: DomainKeys? See http://antispam.yahoo.com/domainkeys
              > To: soaplite@yahoogroups.com
              > From: "gernot_stocker" <gernot.stocker@...>
              > Mailing-List: list soaplite@yahoogroups.com; contact soaplite-owner@yahoogroups.com
              > Date: Wed, 20 Jul 2005 08:58:45 -0000
              > Subject: [soaplite] Re: SOAP::Lite client for Axis WebService and complex objects
              >
              > Shure... I just copied the text from my former post:
              > Thanks for your interest
              > Gernot
              >
              > Old message:
              >
              > Hi all,
              > I have implemented a webservice with Java Axis and would like to offer
              > my users a perl client, too. Some other people asked already questions
              > about serializing java objects etc. on this list but they didn't get
              > an answer.
              >
              > I have just ONE specific question about creating/sending a SOAP/Java
              > Object back to the server. Hopefully THIS question will be answered.
              >
              > I'm using SOAP::Lite version 0.65 Beta 6 and was quite impressed by
              > its functionality and its easy usage.
              >
              > I tried two ways of creating out of the wsdl file (created by axis)
              > end ended up all the time with the same message:
              >
              > 1.) I used the stubmaker.pl and it created me a great class:
              > connecting to the service, calling methods with simple datatypes as
              > arguments and getting/accessing complex objects is working fine. But
              > as soon as I get an object from the server that must be send back to
              > the server the client is claming that
              >
              > "JavaObjectName" can't be found in a schema class 'SOAP::Serializer'
              >
              > The object schema in the wsdl-type-definition and contains just
              > simple datatypes like strings. Do I have to write a serializer for
              > every custom object or is there just an error in the wsdl file?
              >
              > <wsdl:types>
              > <schema targetNamespace="urn:JTestVO"
              > xmlns="http://www.w3.org/2001/XMLSchema">
              > <import namespace="http://xml.apache.org/xml-soap"/>
              > <import namespace="http://ejb.javax"/>
              > <import namespace="http://exception.myservice.localhost"/>
              > <import namespace="http://localhost:8080/axis/services/myservice"/>
              > <import namespace="http://schemas.xmlsoap.org/soap/encoding/"/>
              > <complexType name="JTestVO">
              > <sequence>
              > <element name="firstname" nillable="true" type="xsd:string"/>
              > <element name="lastname" nillable="true" type="xsd:string"/>
              > </sequence>
              > </complexType>
              > </schema>
              > </wsdl:types>
              >
              > results in
              > "JTestVO" can't be found in a schema class 'SOAP::Serializer'
              >
              > 2.) Method
              >
              > use strict;
              > use SOAP::Lite;
              > use Data::Dumper;
              > use MIME::Entity;
              > print "Calling Soap Server:\n\n";
              > my $service=SOAP::Lite->service('file:./Test.xml.wsdl');
              > my $id_vo=$service->getData("123123");
              > print "\nTest: ".$id_vo->{"firstname"};
              > my $cap=$service->getCapabilities($id_vo);
              >
              > as soon as the last method is called I get again:
              > "JTestVO" can't be found in a schema class 'SOAP::Serializer'
              >
              > Please give me a hint where I can find further information or how i
              > can create a custom object, which will be accepted by the webservice.
              >
              > Thanks Gernot
              >
              >
              >
              >
              >
              >
              > Yahoo! Groups Links
              >
              >
              >
              >
              >



              --
              +-----------------------------------------------------------------+
              | Andre Merzky | phon: +31 - 20 - 598 - 7759 |
              | Vrije Universiteit Amsterdam (VU) | fax : +31 - 20 - 598 - 7653 |
              | Dept. of Computer Science | mail: merzky@... |
              | De Boelelaan 1083a | www: http://www.merzky.net |
              | 1081 HV Amsterdam, Netherlands | |
              +-----------------------------------------------------------------+
            • Gernot Stocker
              ... I included in the problem description just the relevant type part of the wsdl, not the complete wsdl where also the getCapabilities() method is defined.
              Message 6 of 11 , Jul 20, 2005
              • 0 Attachment
                On Wednesday 20 July 2005 11:11, Andre Merzky wrote:
                > I am not good at WSDL files, but it seems to me it is
                > missing a port type and operation.  So, it does not specify
                > what methods can be called.  Wouldn't that be crucial?
                >
                > e.g. 'getCapabilities' does not appear in your wsdl.

                I included in the problem description just the relevant type part of
                the wsdl, not the complete wsdl where also the getCapabilities()
                method is defined. This method was just an example which gets
                such a JTestVO as a parameter.

                Should I send a complete WSDL file of the test service?

                Thanks Gernot
                --
                Gernot Stocker,
                Institute for Genomics and Bioinformatics(IGB)
                Petersgasse 14, 8010 Graz, Austria
                Tel.: ++43 316 873 5345
                http://genome.tugraz.at
              • Andre Merzky
                Could you please? As said, I am not fit in WSDL, but I could throw a second pairs of eyes on it ;-) A. ... --
                Message 7 of 11 , Jul 20, 2005
                • 0 Attachment
                  Could you please? As said, I am not fit in WSDL, but I
                  could throw a second pairs of eyes on it ;-)

                  A.


                  Quoting [Gernot Stocker] (Jul 20 2005):
                  > From: Gernot Stocker <gernot.stocker@...>
                  > To: Andre Merzky <andre@...>
                  > Subject: Re: SOAP::Lite client for Axis WebService and complex objects
                  > Date: Wed, 20 Jul 2005 11:25:59 +0200
                  > Cc: soaplite@yahoogroups.com
                  >
                  > On Wednesday 20 July 2005 11:11, Andre Merzky wrote:
                  > > I am not good at WSDL files, but it seems to me it is
                  > > missing a port type and operation.  So, it does not specify
                  > > what methods can be called.  Wouldn't that be crucial?
                  > >
                  > > e.g. 'getCapabilities' does not appear in your wsdl.
                  >
                  > I included in the problem description just the relevant type part of
                  > the wsdl, not the complete wsdl where also the getCapabilities()
                  > method is defined. This method was just an example which gets
                  > such a JTestVO as a parameter.
                  >
                  > Should I send a complete WSDL file of the test service?
                  >
                  > Thanks Gernot
                  --
                  +-----------------------------------------------------------------+
                  | Andre Merzky | phon: +31 - 20 - 598 - 7759 |
                  | Vrije Universiteit Amsterdam (VU) | fax : +31 - 20 - 598 - 7653 |
                  | Dept. of Computer Science | mail: merzky@... |
                  | De Boelelaan 1083a | www: http://www.merzky.net |
                  | 1081 HV Amsterdam, Netherlands | |
                  +-----------------------------------------------------------------+
                • Gernot Stocker
                  ... Hi, I have attached the WSDL generated by axis after deploying it with the following axis deployment descriptor:
                  Message 8 of 11 , Jul 20, 2005
                  • 0 Attachment
                    On Wednesday 20 July 2005 11:38, Andre Merzky wrote:
                    > Could you please? As said, I am not fit in WSDL, but I
                    > could throw a second pairs of eyes on it ;-)

                    Hi,
                    I have attached the WSDL generated by axis after deploying it with the following
                    axis deployment descriptor:

                    <deployment
                    xmlns="http://xml.apache.org/axis/wsdd/"
                    xmlns:java="http://xml.apache.org/axis/wsdd/providers/java">
                    <service name="TestService" provider="java:EJB">
                    <parameter name="beanJndiName" value="AxisServiceBean" />
                    <parameter name="homeInterfaceName" value="at.tugraz.genome.testservice.AxisServiceBeanHome" />
                    <parameter name="remoteInterfaceName" value="at.tugraz.genome.testservice.AxisService" />
                    <parameter name="allowedMethods" value="*"/>
                    <parameter name="jndiURL" value="jnp://localhost:1099"/>
                    <parameter name="jndiContextClass" value="org.jnp.interfaces.NamingContextFactory"/>
                    <beanMapping qname="myNS:JTestVO" xmlns:myNS="urn:JTestVO" languageSpecificType="java:at.tugraz.genome.testservice.JTestVO" />
                    </service>
                    </deployment>

                    If this problem can/will be solved I would provide the complete code of the axis/java/perl
                    TestService-project and a short howto. Then other people don't have to struggle like me.

                    Thanks Gernot
                    --
                    Gernot Stocker,
                    Institute for Genomics and Bioinformatics(IGB)
                    Petersgasse 14, 8010 Graz, Austria
                    Tel.: ++43 316 873 5345
                    http://genome.tugraz.at
                  • Michael Rasmussen
                    Hi Gernot, ...
                    Message 9 of 11 , Jul 20, 2005
                    • 0 Attachment
                      Hi Gernot,

                      > Date: Wed, 20 Jul 2005 14:32:38 +0200
                      > From: Gernot Stocker <gernot.stocker@...>
                      > Subject: Re: SOAP::Lite client for Axis WebService and complex
                      > objects
                      >
                      <wsdl:message name="getCapabilitiesResponse">

                      <wsdl:part name="getCapabilitiesReturn" type="apachesoap:Vector"/>

                      </wsdl:message>

                      <wsdl:output name="getCapabilitiesResponse">
                      <wsdlsoap:body
                      encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
                      namespace="http://localhost:8080/csaxis/services/
                      TestService" use="encoded"/>
                      </wsdl:output>

                      I think your problem lies here. As fare as I know the SOAP XSD does not
                      discribe a datatype Vector. And as you might well have noticed you are
                      using a bean serializer to handle the data type in which case you can
                      only use clients written i Java also. The data type Vector is a native
                      Java data type holding native Java objects. My best guess would be that
                      you chose one of the string collection data types. E.g StringArray.
                      These all have a 1-1 mapping with a SOAP data type
                      <complexType name="JTestVO">
                      <sequence>
                      <element name="firstname" nillable="true" type="soapenc:string"/>
                      <element name="lastname" nillable="true" type="soapenc:string"/>
                      </sequence>
                      </complexType>

                      <complexType name="JTestVOs">
                      <complexContent>
                      <restriction base="SOAP-ENC:Array">
                      <attribute ref="SOAP-ENC:arrayType" wsdl:arrayType="tnsl:JTestVO[]"/
                      >
                      </restriction>
                      </complexContent>
                      </complexType>

                      --
                      Hilsen/Regards
                      Michael Rasmussen

                      Get my public GnuPG keys:
                      michael <at> rasmussen <dot> cc
                      http://keyserver.veridis.com:11371/pks/lookup?op=get&search=0xD3C9A00E
                      mir <at> datanom <dot> net
                      http://keyserver.veridis.com:11371/pks/lookup?op=get&search=0xE501F51C
                      mir <at> miras <dot> org
                      http://keyserver.veridis.com:11371/pks/lookup?op=get&search=0xE3E80917
                      --------------------------------------------------------------
                      Seen above a urinal in the men's room at ETSU: Anyone can pee on the
                      floor.
                      Be a hero: crap on the ceiling.
                    • gernot_stocker
                      Hi Michael, from my point of view the return value of the response should not have to do anything with the serializer of the JTestVO. But just to be shure I
                      Message 10 of 11 , Jul 21, 2005
                      • 0 Attachment
                        Hi Michael,
                        from my point of view the return value of the response should not have
                        to do anything with the serializer of the JTestVO. But just to be
                        shure I introduced an additional method which just returns a simple
                        string:


                        <wsdl:message name="getSimpleCapabilitiesRequest">
                        <wsdl:part name="in0" type="tns1:JTestVO"/>
                        </wsdl:message>
                        [...]
                        <wsdl:message name="getSimpleCapabilitiesResponse">
                        <wsdl:part name="getSimpleCapabilitiesReturn"
                        type="soapenc:string"/>
                        </wsdl:message>
                        [...]
                        <wsdl:operation name="getSimpleCapabilities" parameterOrder="in0">

                        <wsdl:input message="impl:getSimpleCapabilitiesRequest"
                        name="getSimpleCapabilitiesRequest"/>

                        <wsdl:output message="impl:getSimpleCapabilitiesResponse"
                        name="getSimpleCapabilitiesResponse"/>

                        </wsdl:operation>
                        [...]
                        <wsdl:operation name="getSimpleCapabilities">

                        <wsdlsoap:operation soapAction=""/>

                        <wsdl:input name="getSimpleCapabilitiesRequest">

                        <wsdlsoap:body
                        encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
                        namespace="http://testservice.genome.tugraz.at" use="encoded"/>

                        </wsdl:input>

                        <wsdl:output name="getSimpleCapabilitiesResponse">

                        <wsdlsoap:body
                        encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
                        namespace="http://localhost:8080/csaxis/services/TestService"
                        use="encoded"/>

                        </wsdl:output>

                        </wsdl:operation>

                        The result was unfortunately exactly the same:
                        Type 'JTestVO' can't be found in a schema class 'SOAP::Serializer'



                        --- In soaplite@yahoogroups.com, Michael Rasmussen <mir@m...> wrote:
                        [...]
                        > <wsdl:output name="getCapabilitiesResponse">
                        > <wsdlsoap:body
                        > encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
                        > namespace="http://localhost:8080/csaxis/services/
                        > TestService" use="encoded"/>
                        > </wsdl:output>
                        >
                        > I think your problem lies here. As fare as I know the SOAP XSD does
                        not
                        > discribe a datatype Vector. And as you might well have noticed you are
                        > using a bean serializer to handle the data type in which case you can
                        > only use clients written i Java also. The data type Vector is a native
                        > Java data type holding native Java objects. My best guess would be
                        that
                        > you chose one of the string collection data types. E.g StringArray.
                        > These all have a 1-1 mapping with a SOAP data type

                        I've already seen that people could deserialize vectros, but I agree
                        if this would be the problem, it could be solved soon. But
                        unfortunately as the getSimpleCapabilities method(see above) shows,
                        that that it's not the case. The problem seem to be in the serializer
                        and not in the deserializer.

                        Any other ideas?

                        Thanks,
                        Gernot
                      • haltarac
                        Gernot, There are already a couple of bugs opened regarding that problem on SourceForge:
                        Message 11 of 11 , Jul 22, 2005
                        • 0 Attachment
                          Gernot,

                          There are already a couple of bugs opened regarding that problem on
                          SourceForge:

                          http://sourceforge.net/tracker/index.php?func=detail&aid=1196592&group_id=66000&atid=513017
                          http://sourceforge.net/tracker/index.php?func=detail&aid=1230022&group_id=66000&atid=513017


                          It looks like the parameter serialization loop in the generated stub
                          is using a generic serializer that has no idea about your schema
                          definitions.

                          I added this line in the stub:
                          print "BEFORE call to as_method:" . Dumper($self->serializer);
                          before:
                          my $method = 'as_'.$typename;
                          my $result = $self->serializer->$method($param, $template->name,
                          $template->type, $template->attr);

                          My parameter template (in the stub code) looks like:
                          parameters => [
                          SOAP::Data->new(name => 'who', type => 'tns:XYZ', attr => {}),

                          And the dump does not show anything relating to my XYZ type:

                          BEFORE call to as_method:$VAR1 = bless( {
                          '_typelookup' => {
                          'int' => [
                          20,
                          sub { "DUMMY" },
                          'as_int'
                          ],
                          'time' => [
                          70,
                          sub { "DUMMY" },
                          'as_time'
                          ],
                          'date' => [
                          60,
                          sub { "DUMMY" },
                          'as_date'
                          ],
                          'gYear' => [
                          45,
                          sub { "DUMMY" },
                          'as_gYear'
                          ],
                          'string' => [
                          100,
                          sub { "DUMMY" },
                          'as_string'
                          ],
                          'dateTime' => [
                          75,
                          sub { "DUMMY" },
                          'as_dateTime'
                          ],
                          'boolean' => [
                          90,
                          sub { "DUMMY" },
                          'as_boolean'
                          ],
                          'float' => [
                          30,
                          sub { "DUMMY" },
                          'as_float'
                          ],
                          'anyURI' => [
                          95,
                          sub { "DUMMY" },
                          'as_anyURI'
                          ],
                          'long' => [
                          25,
                          sub { "DUMMY" },
                          'as_long'
                          ],
                          'gDay' => [
                          40,
                          sub { "DUMMY" },
                          'as_gDay'
                          ],
                          'gMonthDay' => [
                          50,
                          sub { "DUMMY" },
                          'as_gMonthDay'
                          ],
                          'gYearMonth' => [
                          55,
                          sub { "DUMMY" },
                          'as_gYearMonth'
                          ],
                          'duration' => [
                          80,
                          sub { "DUMMY" },
                          'as_duration'
                          ],
                          'base64Binary' => [
                          10,
                          sub { "DUMMY" },
                          'as_base64Binary'
                          ],
                          'gMonth' => [
                          35,
                          sub { "DUMMY" },
                          'as_gMonth'
                          ]
                          },
                          '_encodingStyle' =>
                          'http://schemas.xmlsoap.org/soap/encoding/',
                          '_objectstack' => {},
                          '_level' => 0,
                          '_signature' => [],
                          '_soapversion' => '1.1',
                          '_maptype' => {},
                          '_namespaces' => {
                          'http://www.w3.org/2001/XMLSchema'
                          => 'xsd',

                          'http://schemas.xmlsoap.org/soap/encoding/' => 'soapenc',

                          'http://www.w3.org/2001/XMLSchema-instance' => 'xsi',

                          'http://schemas.xmlsoap.org/soap/envelope/' => 'soap'
                          },
                          '_seen' => {},
                          '_attr' => {

                          '{http://schemas.xmlsoap.org/soap/envelope/}encodingStyle' =>
                          'http://schemas.xmlsoap.org/soap/encoding/'
                          },
                          '_multirefinplace' => 0,
                          '_on_nonserialized' => sub { "DUMMY" },
                          '_xmlschema' => 'http://www.w3.org/2001/XMLSchema',
                          '_use_prefix' => 1,
                          '_readable' => 0,
                          '_encoding' => 'UTF-8',
                          '_autotype' => 1
                          }, 'SOAP::Serializer' );

                          And of course, the usual error message:
                          Type 'XYZ' can't be found in a schema class 'SOAP::Serializer'


                          Henri


                          --- In soaplite@yahoogroups.com, "gernot_stocker"
                          <gernot.stocker@t...> wrote:
                          > Hi Michael,
                          > from my point of view the return value of the response should not have
                          > to do anything with the serializer of the JTestVO. But just to be
                          > shure I introduced an additional method which just returns a simple
                          > string:
                          >
                          >
                          > <wsdl:message name="getSimpleCapabilitiesRequest">
                          > <wsdl:part name="in0" type="tns1:JTestVO"/>
                          > </wsdl:message>
                          > [...]
                          > <wsdl:message name="getSimpleCapabilitiesResponse">
                          > <wsdl:part name="getSimpleCapabilitiesReturn"
                          > type="soapenc:string"/>
                          > </wsdl:message>
                          > [...]
                          > <wsdl:operation name="getSimpleCapabilities" parameterOrder="in0">
                          >
                          > <wsdl:input message="impl:getSimpleCapabilitiesRequest"
                          > name="getSimpleCapabilitiesRequest"/>
                          >
                          > <wsdl:output message="impl:getSimpleCapabilitiesResponse"
                          > name="getSimpleCapabilitiesResponse"/>
                          >
                          > </wsdl:operation>
                          > [...]
                          > <wsdl:operation name="getSimpleCapabilities">
                          >
                          > <wsdlsoap:operation soapAction=""/>
                          >
                          > <wsdl:input name="getSimpleCapabilitiesRequest">
                          >
                          > <wsdlsoap:body
                          > encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
                          > namespace="http://testservice.genome.tugraz.at" use="encoded"/>
                          >
                          > </wsdl:input>
                          >
                          > <wsdl:output name="getSimpleCapabilitiesResponse">
                          >
                          > <wsdlsoap:body
                          > encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
                          > namespace="http://localhost:8080/csaxis/services/TestService"
                          > use="encoded"/>
                          >
                          > </wsdl:output>
                          >
                          > </wsdl:operation>
                          >
                          > The result was unfortunately exactly the same:
                          > Type 'JTestVO' can't be found in a schema class 'SOAP::Serializer'
                          >
                          >
                          >
                          > --- In soaplite@yahoogroups.com, Michael Rasmussen <mir@m...> wrote:
                          > [...]
                          > > <wsdl:output name="getCapabilitiesResponse">
                          > > <wsdlsoap:body
                          > > encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
                          > > namespace="http://localhost:8080/csaxis/services/
                          > > TestService" use="encoded"/>
                          > > </wsdl:output>
                          > >
                          > > I think your problem lies here. As fare as I know the SOAP XSD does
                          > not
                          > > discribe a datatype Vector. And as you might well have noticed you
                          are
                          > > using a bean serializer to handle the data type in which case you
                          can
                          > > only use clients written i Java also. The data type Vector is a
                          native
                          > > Java data type holding native Java objects. My best guess would be
                          > that
                          > > you chose one of the string collection data types. E.g StringArray.
                          > > These all have a 1-1 mapping with a SOAP data type
                          >
                          > I've already seen that people could deserialize vectros, but I agree
                          > if this would be the problem, it could be solved soon. But
                          > unfortunately as the getSimpleCapabilities method(see above) shows,
                          > that that it's not the case. The problem seem to be in the serializer
                          > and not in the deserializer.
                          >
                          > Any other ideas?
                          >
                          > Thanks,
                          > Gernot
                        Your message has been successfully submitted and would be delivered to recipients shortly.