You are viewing a plain text version of this content. The canonical link for it is here.
Posted to java-user@axis.apache.org by françois françois <fv...@yahoo.fr> on 2006/01/19 14:26:15 UTC

problems to migrate from AXIS 1.2.1 to AXIS 1.3

Hi everybody
   
  i have tried to migrate from axis 1.2.1 to axis 1.3
it seems that the ArraySerializer has changed between this 2 versions
and it caused some problems with inheritance:
If you ve got for example: an abstract class animal and a class dog who extends animal
and an Array of animal
so in this way :
  public abstract class Animal{
private String nom;
  ......
  }
  public class Dog extends Animal{
  private String color;
........
  }
  your webservice expose this method below for example:
  public Animal [] getListOfAnimals(){
  Animal [] array_Animals=new Animals[1];
Dog doggy= new doggy("pluto","black");
array_Animals[0]=doggy;
return array_Animals;
}
  In axis 1.3 when you call getListOfAnimals(), you lost the informations of Dog so you receive to your client
only an array which contains Animal type Object  but not Dog objects and the client failed : instantiation exception....
  In axis 1.2.1 you still have  the information that the function getListOfAnimals() return an array of Animal which contains 
Dog objects.
  It happens only with array, i have tried to do other examples in many ways i have got the same problems...
  I use document wrapped/literal.
Has someone got the same problems ?any explanations? is it a bugs?
  Thank you.


		
---------------------------------
 Nouveau : téléphonez moins cher avec Yahoo! Messenger ! Découvez les tarifs exceptionnels pour appeler la France et l'international.Téléchargez la version beta.

RE: problems to migrate from AXIS 1.2.1 to AXIS 1.3 array serialization BUGS OR NOT?

Posted by Jarmo Doc <ja...@hotmail.com>.
http://svn.apache.org/viewcvs.cgi/webservices/axis/branches/AXIS_1_4_FINAL/


>From: françois françois <fv...@yahoo.fr>
>Reply-To: axis-user@ws.apache.org
>To: axis-user@ws.apache.org
>Subject: RE: problems to migrate from AXIS 1.2.1 to AXIS 1.3 array 
>serialization BUGS OR NOT?
>Date: Fri, 20 Jan 2006 17:00:18 +0100 (CET)
>
>   where can I find the axis 1.4 src?

_________________________________________________________________
Express yourself instantly with MSN Messenger! Download today - it's FREE! 
http://messenger.msn.click-url.com/go/onm00200471ave/direct/01/


RE: problems to migrate from AXIS 1.2.1 to AXIS 1.3 array serialization BUGS OR NOT?

Posted by françois françois <fv...@yahoo.fr>.
in axis 1.3 my small fixes work but i don't know if it is good to do like this.....
  in axis 1.4 you have got still the same problems?
  where can I find the axis 1.4 src?
   
  thanks

Christophe Roudet <cr...@activia.net> a écrit :
        v\:* {behavior:url(#default#VML);}  o\:* {behavior:url(#default#VML);}  w\:* {behavior:url(#default#VML);}  .shape {behavior:url(#default#VML);}        st1\:*{behavior:url(#default#ieooui) }                I have a similar problem, see http://marc.theaimsgroup.com/?l=axis-user&m=113328879314269&w=2
   
  Christophe
   
        
---------------------------------
  
  From: françois françois [mailto:fvdev@yahoo.fr] 
Sent: Friday, January 20, 2006 5:50 AM
To: axis-user@ws.apache.org
Subject: Re: problems to migrate from AXIS 1.2.1 to AXIS 1.3 array serialization BUGS OR NOT?

   
    Hi

     

    i look in the code source of axis 1.2.1 and 1.3

     

      so I look in the axis code 1.3:

     

    package org.apache.axis.encoding.SerializationContext

    class SerializationContext:

    private void serializeActual(QName elemQName,
                                Attributes attributes,
                                Object value,
                                QName xmlType,
                                Class javaClass,
                                Boolean sendType)
        throws IOException
    {...........

        Class javaType = getActualJavaClass(xmlType, javaClass, value);
            
  
in axis  code 1.2.1:

    
       private void serializeActual(QName elemQName,
                                Attributes attributes,
                                Object value,
                                QName xmlType,
                                Boolean sendType)
        throws IOException
    {
        .......

            if (value != null) {
            Class javaType = value.getClass();
            TypeMapping tm = getTypeMapping();

    
I tried to replace in axis 1.3  getActualJavaClass(xmlType, javaClass, value) with value.getClass() likein AXIS 1.2.1;
now it seems to work but i don't know if it is the good solution.....
perhaps the problem seems to be in the method getActualJavaClass.

    what do you think? is anyone found this problem?

    i report it in axis developer forum.

     

    thanks

     

     


    françois françois <fv...@yahoo.fr> a écrit :

      Hi Dies

     

    I give you another examples with the same problems

     

     

    <?xml version="1.0" encoding="UTF-8"?>
<wsdl:definitions targetNamespace="urn:testservices" xmlns:impl="urn:testservices" xmlns:intf="urn:testservices" xmlns:apachesoap="http://xml.apache.org/xml-soap" xmlns:wsdlsoap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:tns1="http://echange.soapsoo.applicatif.prototype.clara" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">
<!--WSDL created by Apache Axis version: 1.3
Built on Oct 05, 2005 (05:23:37 EDT)-->
 <wsdl:types>
  <schema xmlns="http://www.w3.org/2001/XMLSchema" targetNamespace="urn:testservices" elementFormDefault="qualified">
   <import namespace="http://echange.soapsoo.applicatif.prototype.clara"/>
   <element name="retourneBeanArticle">
    <complexType/>
   </element>
   <element name="retourneBeanArticleResponse">
    <complexType>
     <sequence>
      <element name="retourneBeanArticleReturn" type="tns1:BeanArticleSoap" maxOccurs="unbounded"/>
     </sequence>
    </complexType>
   </element>
   <complexType name="ArrayOf_xsd_anyType">
    <sequence>
     <el ement name="item" type="xsd:anyType" minOccurs="0" maxOccurs="unbounded"/>
    </sequence>
   </complexType>
  </schema>
  <schema xmlns="http://www.w3.org/2001/XMLSchema" targetNamespace="http://echange.soapsoo.applicatif.prototype.clara" elementFormDefault="qualified">
   <import namespace="urn:testservices"/>
   <complexType abstract="true" name="BeanEchangeSoap">
    <sequence>
     <element name="description" nillable="true" type="xsd:string"/>
     <element name="nom" nillable="true" type="xsd:string"/>
     <element name="id" nillable="true" type="xsd:string"/>
    </sequence>
   </complexType>
  ;   <complexType abstract="true" name="BeanArticleSoap">
    <complexContent>
     <extension base="tns1:BeanEchangeSoap">
      <sequence>
       <element name="dateCommercialisation" nillable="true" type="xsd:dateTime"/>
       <element name="lesMarches" nillable="true" type="impl:ArrayOf_xsd_anyType"/>
       <element name="idCatalogueRattachement" nillable="true" type="xsd:string"/>
      </sequence>
     </extension>
    </complexContent>
   </complexType>
    <complexType name="BeanMaterielSoap">
    <complexContent>
     <extension base="tns1:BeanArticleSoap">
      <sequence>
       <element name="prix" type="xsd:float"/>
       <element name="couleur" nillable="true" 
        type="xsd:string"/>
      </sequence>
     </extension>
    </complexContent>
   </complexType>
   <complexType name="BeanMarcheSoap">
    <complexContent>
     <extension base="tns1:BeanEchangeSoap">
      <sequence/>
     </extension>
    </complexContent>
   </complexType>
   
  </schema>
 </wsdl:types>

       <wsdl:message name="retourneBeanArticleRequest">

          <wsdl:part name="parameters" element="impl:retourneBeanArticle"/>

       </wsdl:message>

       <wsdl:message name="retourneBeanArticleResponse">

          <wsdl:part name="parameters" element="impl:retourneBeanArticleResponse"/>

       </wsdl:message>

       <wsdl:portType name="ServiceTest">

          <wsdl:operation name="retourneBeanArticle">

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

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

          </wsdl:operation>

       </wsdl:portType>

       <wsdl:binding name="ServicesSoapBinding" type="impl:ServiceTest">

          <wsdlsoap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>

          <wsdl:operation name="retourneBeanArticle">

             <wsdlsoap:operation soapAction=""/>

             <wsdl:input name="retourneBeanArticleRequest">

                <wsdlsoap:body use="literal"/>

             </wsdl:input>

             <wsdl:output name="retourneBeanArticleResponse">

                <wsdlsoap:body use="literal"/>

             </wsdl:output>

          </wsdl:operation>

       </wsdl:binding>

       <wsdl:service name="ServiceTestService">

          <wsdl:port name="Services" binding="impl:ServicesSoapBinding">

             <wsdlsoap:address location="http://localhost:9000/TestService/services/Services"/>

          </wsdl:port>

       </wsdl:service>

    </wsdl:definitions>

    wsd d:

    <service name="Services" provider="java:RPC" style="wrapped" use="literal">
 <wsdlFile>/wsdl/TestService.wsdl</wsdlFile>
      <parameter name="wsdlTargetNamespace" value="urn:testservices"/>
      <parameter name="wsdlServiceElement" value="ServiceTestService"/>
      <parameter name="schemaQualified" value="http://echange.soapsoo.applicatif.prototype.clara,urn:testservices"/>
      <parameter name="wsdlServicePort" value="Services"/>
      <parameter name="className" value="test.heritage.ServiceTestImpl"/>
      <parameter name="wsdlPortType" value="ServiceTest"/>
      <parameter name="typeMappingVersion" value="1.2"/>
      <operation name="retourneBeanArticle" qname="operNS:retourneBeanArticle" xmlns:operNS="urn:testservices" returnQName="retNS:retourneBeanArticleReturn" xmlns:retNS="urn:testservices" returnType="rtns:BeanArticleSoap" xmlns:rtns="http://echange.soapsoo.applicatif.prototype.clara" soapAction="">
      </operation>
      <parameter name="allowedMethods" value="retourneBeanArticle"/>

        
      <typeMapping xmlns:ns="http://echange.soapsoo.applicatif.prototype.clara" qname="ns:BeanMaterielSoap" type="java:clara.prototype.applicatif.soapsoo.echange.BeanMaterielSoap" serializer="org.apache.axis.encoding.ser.BeanSerializerFactory" deserializer="org.apache.axis.encoding.ser.BeanDeserializerFactory" encodingStyle=""/>
      <arrayMapping xmlns:ns="urn:testservices" qname="ns:ArrayOf_xsd_anyType" type="java:java.lang.Object[]" innerType="cmp-ns:anyType" xmlns:cmp-ns="http://www.w3.org/2001/XMLSchema" encodingStyle=""/>
      <typeMapping xmlns:ns="http://echange.soapsoo.applicatif.prototype.clara" qname="ns:BeanArticleSoap" type="java:clara.prototype.applicatif.soapsoo.echange.BeanArticleSoap" serializer="org.apache.axis.encoding.ser.BeanSerializerFactory" deserializer="org.apache.axis.encoding.ser.BeanDeserializerFactory" encodingStyle=""/>
      <typeMapping xmlns:ns="http://echange.soapsoo.applicatif.prototype.clara" qname="ns:BeanMarcheSoap" type="java:clara.prototype.applicatif.soapsoo.echange.BeanMarcheSoap" serializer="org.apache.axis.encoding.ser.BeanSerializerFactory" deserializer="org.apache.axis.encoding.ser.BeanDeserializerFactory" encodingStyle=""/>
      <typeMapping xmlns:ns="http://echange.soapsoo.applicatif.prototype.clara" qname="ns:BeanEchangeSoap" type="java:clara.prototype.applicatif.soapsoo.echange.BeanEchangeSoap" serializer="org.apache.axis.encoding.ser.BeanSerializerFactory" deserializer="org.apache.axis.encoding.ser.BeanDeserializerFactory" encodingStyle=""/>
      <arrayMapping xmlns:ns="urn:testservices" qname="ns:&gt;retourneBeanArticleResponse" type="java:clara.prototype.applicatif.soapsoo.echange.BeanArticleSoap[]" innerType="cmp-ns:BeanArticleSoap" xmlns:cmp-ns="http://echange.soapsoo.applicatif.prototype.clara" encodingStyle=""/>
  </service>

     

    class java:

    public class ServiceTestImpl implements ServiceTest {

        public static void main(String[] args) {
    }

         public BeanArticleSoap[] retourneBeanArticle() {
        
        BeanArticleSoap[] tab= new BeanArticleSoap[1];
        Date d= new Date("12/10/06");
        BeanMarcheSoap marche= new BeanMarcheSoap("Marchéexemple","marche entreprise","3");
        Vector marches = new Vector(); 
        marches.add(marche);
      & amp;n bsp; BeanMaterielSoap mater=new BeanMaterielSoap("2","tondeuse","aucune",d,"3",marches.toArray(),"rouge",12);
        BeanArticleSoap art=mater;
        tab[0]=(BeanMaterielSoap)mater;
        
        
        return tab;
    }
}

     

    i have done a wsdl2java to generate the java files

     

    thanks.

     

     

    
Dies Koper <di...@jp.fujitsu.com> a écrit :

    Hello François,

I'd like to try to reproduce your problem. Could you post a (small) WSDL 
file, client and impl file to do this?
I'm wondering where the problem is.. WSDD, SOAP message..

Regards,
Dies


françois françois wrote:
> Hi everybody
> 
> i have tried to migrate from axis 1.2.1 to axis 1.3
> it seems that the ArraySerializer has changed between this 2 versions
> and it caused some problems with inheritance:
> If you ve got for example: an abstract class animal and a class dog who extends animal
> and an Array of animal
> so in this way :
> public abstract class Animal{
> private String nom;
> ......
> }
> public class Dog extends Animal{
> private String color;
> ........
> }
> your webservice expose this method below for example:
> public Animal [] getListOfAnimals(){
> Animal [] array_Animals=new Animals[1];
> Dog doggy= new doggy("pluto","black");
> array_Animals[0]=doggy;
> return array_Animals;
> }
> In axis 1.3 when you call getListOfAnimals(), you lost the informations of Dog so you receive to your client
> only an array which contains Animal type Object but not Dog objects and the client failed : instantiation exception....
> In axis 1.2.1 you still have the information that the function getListOfAnimals() return an array of Animal which contains 
> Dog objects.
> It happens only with array, i have tried to do other examples in many ways i have got the same problems...
> I use document wrapped/literal.
> Has someone got the same problems ?any explanations? is it a bugs?
> Thank you.
> 
> 
> 
> ---------------------------------
> Nouveau : téléphonez moins cher avec Yahoo! Messenger ! Découvez les tarifs exceptionnels pour appeler la France et l'international.Téléchargez la version beta.

-- 
Dies KOPER (changed on 1 July 2005)
Fujitsu Ltd - MWPF1 (changed from MWPF3 on 21 Nov 2005)
2-15-16, Shin-Yokohama, Kouhoku-ku, Yokohama, 222-0033, Japan 
Tel. +81(45)-475-5605 (internal 7181-4217)
     

      
---------------------------------
  
  Nouveau : téléphonez moins cher avec Yahoo! Messenger ! Découvez les tarifs exceptionnels pour appeler la France et l'international. Téléchargez la version beta.

     

    
---------------------------------
  
  Nouveau : téléphonez moins cher avec Yahoo! Messenger ! Découvez les tarifs exceptionnels pour appeler la France et l'international. Téléchargez la version beta.


  


		
---------------------------------
 Nouveau : téléphonez moins cher avec Yahoo! Messenger ! Découvez les tarifs exceptionnels pour appeler la France et l'international.Téléchargez la version beta.

RE: problems to migrate from AXIS 1.2.1 to AXIS 1.3 array serialization BUGS OR NOT?

Posted by Christophe Roudet <cr...@activia.net>.
I have a similar problem, see http://marc.theaimsgroup.com/?l=axis-user
<http://marc.theaimsgroup.com/?l=axis-user&m=113328879314269&w=2>
&m=113328879314269&w=2

 

Christophe

 

  _____  

From: françois françois [mailto:fvdev@yahoo.fr] 
Sent: Friday, January 20, 2006 5:50 AM
To: axis-user@ws.apache.org
Subject: Re: problems to migrate from AXIS 1.2.1 to AXIS 1.3 array
serialization BUGS OR NOT?

 

Hi

 

i look in the code source of axis 1.2.1 and 1.3

 

so I look in the axis code 1.3:

 

package org.apache.axis.encoding.SerializationContext

class SerializationContext:

private void serializeActual(QName elemQName,
                                Attributes attributes,
                                Object value,
                                QName xmlType,
                                Class javaClass,
                                Boolean sendType)
        throws IOException
    {...........

    Class javaType = getActualJavaClass(xmlType, javaClass, value);
            
  
in axis  code 1.2.1:


       private void serializeActual(QName elemQName,
                                Attributes attributes,
                                Object value,
                                QName xmlType,
                                Boolean sendType)
        throws IOException
    {
        .......

        if (value != null) {
            Class javaType = value.getClass();
            TypeMapping tm = getTypeMapping();


I tried to replace in axis 1.3  getActualJavaClass(xmlType, javaClass,
value) with value.getClass() likein AXIS 1.2.1;
now it seems to work but i don't know if it is the good solution.....
perhaps the problem seems to be in the method getActualJavaClass.

what do you think? is anyone found this problem?

i report it in axis developer forum.

 

thanks

 

 

françois françois <fv...@yahoo.fr> a écrit :

Hi Dies

 

I give you another examples with the same problems

 

 

<?xml version="1.0" encoding="UTF-8"?>
<wsdl:definitions targetNamespace="urn:testservices"
xmlns:impl="urn:testservices" xmlns:intf="urn:testservices"
xmlns:apachesoap="http://xml.apache.org/xml-soap"
xmlns:wsdlsoap="http://schemas.xmlsoap.org/wsdl/soap/"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:tns1="http://echange.soapsoo.applicatif.prototype.clara
<http://echange.soapsoo.applicatif.prototype.clara/> "
xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">
<!--WSDL created by Apache Axis version: 1.3
Built on Oct 05, 2005 (05:23:37 EDT)-->
 <wsdl:types>
  <schema xmlns="http://www.w3.org/2001/XMLSchema"
targetNamespace="urn:testservices" elementFormDefault="qualified">
   <import namespace="http://echange.soapsoo.applicatif.prototype.clara"/>
   <element name="retourneBeanArticle">
    <complexType/>
   </element>
   <element name="retourneBeanArticleResponse">
    <complexType>
     <sequence>
      <element name="retourneBeanArticleReturn" type="tns1:BeanArticleSoap"
maxOccurs="unbounded"/>
     </sequence>
    </complexType>
   </element>
   <complexType name="ArrayOf_xsd_anyType">
    <sequence>
     <el ement name="item" type="xsd:anyType" minOccurs="0"
maxOccurs="unbounded"/>
    </sequence>
   </complexType>
  </schema>
  <schema xmlns="http://www.w3.org/2001/XMLSchema"
targetNamespace="http://echange.soapsoo.applicatif.prototype.clara
<http://echange.soapsoo.applicatif.prototype.clara/> "
elementFormDefault="qualified">
   <import namespace="urn:testservices"/>
   <complexType abstract="true" name="BeanEchangeSoap">
    <sequence>
     <element name="description" nillable="true" type="xsd:string"/>
     <element name="nom" nillable="true" type="xsd:string"/>
     <element name="id" nillable="true" type="xsd:string"/>
    </sequence>
   </complexType>
  ;   <complexType abstract="true" name="BeanArticleSoap">
    <complexContent>
     <extension base="tns1:BeanEchangeSoap">
      <sequence>
       <element name="dateCommercialisation" nillable="true"
type="xsd:dateTime"/>
       <element name="lesMarches" nillable="true"
type="impl:ArrayOf_xsd_anyType"/>
       <element name="idCatalogueRattachement" nillable="true"
type="xsd:string"/>
      </sequence>
     </extension>
    </complexContent>
   </complexType>
    <complexType name="BeanMaterielSoap">
    <complexContent>
     <extension base="tns1:BeanArticleSoap">
      <sequence>
       <element name="prix" type="xsd:float"/>
       <element name="couleur" nillable="true" 
        type="xsd:string"/>
      </sequence>
     </extension>
    </complexContent>
   </complexType>
   <complexType name="BeanMarcheSoap">
    <complexContent>
     <extension base="tns1:BeanEchangeSoap">
      <sequence/>
     </extension>
    </complexContent>
   </complexType>
   
  </schema>
 </wsdl:types>

   <wsdl:message name="retourneBeanArticleRequest">

      <wsdl:part name="parameters" element="impl:retourneBeanArticle"/>

   </wsdl:message>

   <wsdl:message name="retourneBeanArticleResponse">

      <wsdl:part name="parameters"
element="impl:retourneBeanArticleResponse"/>

   </wsdl:message>

   <wsdl:portType name="ServiceTest">

      <wsdl:operation name="retourneBeanArticle">

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

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

      </wsdl:operation>

   </wsdl:portType>

   <wsdl:binding name="ServicesSoapBinding" type="impl:ServiceTest">

      <wsdlsoap:binding style="document"
transport="http://schemas.xmlsoap.org/soap/http"/>

      <wsdl:operation name="retourneBeanArticle">

         <wsdlsoap:operation soapAction=""/>

         <wsdl:input name="retourneBeanArticleRequest">

            <wsdlsoap:body use="literal"/>

         </wsdl:input>

         <wsdl:output name="retourneBeanArticleResponse">

            <wsdlsoap:body use="literal"/>

         </wsdl:output>

      </wsdl:operation>

   </wsdl:binding>

   <wsdl:service name="ServiceTestService">

      <wsdl:port name="Services" binding="impl:ServicesSoapBinding">

         <wsdlsoap:address
location="http://localhost:9000/TestService/services/Services"/>

      </wsdl:port>

   </wsdl:service>

</wsdl:definitions>

wsd d:

<service name="Services" provider="java:RPC" style="wrapped" use="literal">
 <wsdlFile>/wsdl/TestService.wsdl</wsdlFile>
      <parameter name="wsdlTargetNamespace" value="urn:testservices"/>
      <parameter name="wsdlServiceElement" value="ServiceTestService"/>
      <parameter name="schemaQualified"
value="http://echange.soapsoo.applicatif.prototype.clara,urn:testservices"/>
      <parameter name="wsdlServicePort" value="Services"/>
      <parameter name="className" value="test.heritage.ServiceTestImpl"/>
      <parameter name="wsdlPortType" value="ServiceTest"/>
      <parameter name="typeMappingVersion" value="1.2"/>
      <operation name="retourneBeanArticle"
qname="operNS:retourneBeanArticle" xmlns:operNS="urn:testservices"
returnQName="retNS:retourneBeanArticleReturn" xmlns:retNS="urn:testservices"
returnType="rtns:BeanArticleSoap"
xmlns:rtns="http://echange.soapsoo.applicatif.prototype.clara
<http://echange.soapsoo.applicatif.prototype.clara/> " soapAction="">
      </operation>
      <parameter name="allowedMethods" value="retourneBeanArticle"/>

    
      <typeMapping
xmlns:ns="http://echange.soapsoo.applicatif.prototype.clara
<http://echange.soapsoo.applicatif.prototype.clara/> "
qname="ns:BeanMaterielSoap"
type="java:clara.prototype.applicatif.soapsoo.echange.BeanMaterielSoap"
serializer="org.apache.axis.encoding.ser.BeanSerializerFactory"
deserializer="org.apache.axis.encoding.ser.BeanDeserializerFactory"
encodingStyle=""/>
      <arrayMapping xmlns:ns="urn:testservices"
qname="ns:ArrayOf_xsd_anyType" type="java:java.lang.Object[]"
innerType="cmp-ns:anyType" xmlns:cmp-ns="http://www.w3.org/2001/XMLSchema"
encodingStyle=""/>
      <typeMapping
xmlns:ns="http://echange.soapsoo.applicatif.prototype.clara
<http://echange.soapsoo.applicatif.prototype.clara/> "
qname="ns:BeanArticleSoap"
type="java:clara.prototype.applicatif.soapsoo.echange.BeanArticleSoap"
serializer="org.apache.axis.encoding.ser.BeanSerializerFactory"
deserializer="org.apache.axis.encoding.ser.BeanDeserializerFactory"
encodingStyle=""/>
      <typeMapping
xmlns:ns="http://echange.soapsoo.applicatif.prototype.clara
<http://echange.soapsoo.applicatif.prototype.clara/> "
qname="ns:BeanMarcheSoap"
type="java:clara.prototype.applicatif.soapsoo.echange.BeanMarcheSoap"
serializer="org.apache.axis.encoding.ser.BeanSerializerFactory"
deserializer="org.apache.axis.encoding.ser.BeanDeserializerFactory"
encodingStyle=""/>
      <typeMapping
xmlns:ns="http://echange.soapsoo.applicatif.prototype.clara
<http://echange.soapsoo.applicatif.prototype.clara/> "
qname="ns:BeanEchangeSoap"
type="java:clara.prototype.applicatif.soapsoo.echange.BeanEchangeSoap"
serializer="org.apache.axis.encoding.ser.BeanSerializerFactory"
deserializer="org.apache.axis.encoding.ser.BeanDeserializerFactory"
encodingStyle=""/>
      <arrayMapping xmlns:ns="urn:testservices"
qname="ns:&gt;retourneBeanArticleResponse"
type="java:clara.prototype.applicatif.soapsoo.echange.BeanArticleSoap[]"
innerType="cmp-ns:BeanArticleSoap"
xmlns:cmp-ns="http://echange.soapsoo.applicatif.prototype.clara
<http://echange.soapsoo.applicatif.prototype.clara/> " encodingStyle=""/>
  </service>

 

class java:

public class ServiceTestImpl implements ServiceTest {

    public static void main(String[] args) {
    }

     public BeanArticleSoap[] retourneBeanArticle() {
        
        BeanArticleSoap[] tab= new BeanArticleSoap[1];
        Date d= new Date("12/10/06");
        BeanMarcheSoap marche= new BeanMarcheSoap("Marchéexemple","marche
entreprise","3");
        Vector marches = new Vector(); 
        marches.add(marche);
      & amp;n bsp; BeanMaterielSoap mater=new
BeanMaterielSoap("2","tondeuse","aucune",d,"3",marches.toArray(),"rouge",12)
;
        BeanArticleSoap art=mater;
        tab[0]=(BeanMaterielSoap)mater;
        
        
        return tab;
    }
}

 

i have done a wsdl2java to generate the java files

 

thanks.

 

 


Dies Koper <di...@jp.fujitsu.com> a écrit :

Hello François,

I'd like to try to reproduce your problem. Could you post a (small) WSDL 
file, client and impl file to do this?
I'm wondering where the problem is.. WSDD, SOAP message..

Regards,
Dies


françois françois wrote:
> Hi everybody
> 
> i have tried to migrate from axis 1.2.1 to axis 1.3
> it seems that the ArraySerializer has changed between this 2 versions
> and it caused some problems with inheritance:
> If you ve got for example: an abstract class animal and a class dog who
extends animal
> and an Array of animal
> so in this way :
> public abstract class Animal{
> private String nom;
> ......
> }
> public class Dog extends Animal{
> private String color;
> ........
> }
> your webservice expose this method below for example:
> public Animal [] getListOfAnimals(){
> Animal [] array_Animals=new Animals[1];
> Dog doggy= new doggy("pluto","black");
> array_Animals[0]=doggy;
> return array_Animals;
> }
> In axis 1.3 when you call getListOfAnimals(), you lost the informations of
Dog so you receive to your client
> only an array which contains Animal type Object but not Dog objects and
the client failed : instantiation exception....
> In axis 1.2.1 you still have the information that the function
getListOfAnimals() return an array of Animal which contains 
> Dog objects.
> It happens only with array, i have tried to do other examples in many ways
i have got the same problems...
> I use document wrapped/literal.
> Has someone got the same problems ?any explanations? is it a bugs?
> Thank you.
> 
> 
> 
> ---------------------------------
> Nouveau : téléphonez moins cher avec Yahoo! Messenger ! Découvez les
tarifs exceptionnels pour appeler la France et l'international.Téléchargez
la version beta.

-- 
Dies KOPER (changed on 1 July 2005)
Fujitsu Ltd - MWPF1 (changed from MWPF3 on 21 Nov 2005)
2-15-16, Shin-Yokohama, Kouhoku-ku, Yokohama, 222-0033, Japan 
Tel. +81(45)-475-5605 (internal 7181-4217)

 


  _____  


Nouveau : téléphonez moins cher avec Yahoo! Messenger ! Découvez les tarifs
exceptionnels pour appeler la France et l'international. Téléchargez
<http://us.rd.yahoo.com/messenger/mail_taglines/default/*http:/fr.beta.messe
nger.yahoo.com>  la version beta.

 


  _____  


Nouveau : téléphonez moins cher avec Yahoo! Messenger ! Découvez les tarifs
exceptionnels pour appeler la France et l'international. Téléchargez
<http://us.rd.yahoo.com/messenger/mail_taglines/default/*http:/fr.beta.messe
nger.yahoo.com>  la version beta.


Re: problems to migrate from AXIS 1.2.1 to AXIS 1.3 array serialization BUGS OR NOT?

Posted by françois françois <fv...@yahoo.fr>.
Hi
   
  i look in the code source of axis 1.2.1 and 1.3
   
    so I look in the axis code 1.3:
   
  package org.apache.axis.encoding.SerializationContext

  class SerializationContext:
  private void serializeActual(QName elemQName,
                                Attributes attributes,
                                Object value,
                                QName xmlType,
                                Class javaClass,
                                Boolean sendType)
        throws IOException
    {...........
      Class javaType = getActualJavaClass(xmlType, javaClass, value);
            
  
in axis  code 1.2.1:
  
       private void serializeActual(QName elemQName,
                                Attributes attributes,
                                Object value,
                                QName xmlType,
                                Boolean sendType)
        throws IOException
    {
        .......
          if (value != null) {
            Class javaType = value.getClass();
            TypeMapping tm = getTypeMapping();
  
I tried to replace in axis 1.3  getActualJavaClass(xmlType, javaClass, value) with value.getClass() likein AXIS 1.2.1;
now it seems to work but i don't know if it is the good solution.....
perhaps the problem seems to be in the method getActualJavaClass.
  what do you think? is anyone found this problem?
  i report it in axis developer forum.
   
  thanks
   
   

  françois françois <fv...@yahoo.fr> a écrit :
    Hi Dies
   
  I give you another examples with the same problems
   
   
  <?xml version="1.0" encoding="UTF-8"?>
<wsdl:definitions targetNamespace="urn:testservices" xmlns:impl="urn:testservices" xmlns:intf="urn:testservices" xmlns:apachesoap="http://xml.apache.org/xml-soap" xmlns:wsdlsoap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:tns1="http://echange.soapsoo.applicatif.prototype.clara" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">
<!--WSDL created by Apache Axis version: 1.3
Built on Oct 05, 2005 (05:23:37 EDT)-->
 <wsdl:types>
  <schema xmlns="http://www.w3.org/2001/XMLSchema" targetNamespace="urn:testservices" elementFormDefault="qualified">
   <import namespace="http://echange.soapsoo.applicatif.prototype.clara"/>
   <element name="retourneBeanArticle">
    <complexType/>
   </element>
   <element name="retourneBeanArticleResponse">
    <complexType>
     <sequence>
      <element name="retourneBeanArticleReturn" type="tns1:BeanArticleSoap" maxOccurs="unbounded"/>
     </sequence>
    </complexType>
   </element>
   <complexType name="ArrayOf_xsd_anyType">
    <sequence>
     <el ement name="item" type="xsd:anyType" minOccurs="0" maxOccurs="unbounded"/>
    </sequence>
   </complexType>
  </schema>
  <schema xmlns="http://www.w3.org/2001/XMLSchema" targetNamespace="http://echange.soapsoo.applicatif.prototype.clara" elementFormDefault="qualified">
   <import namespace="urn:testservices"/>
   <complexType abstract="true" name="BeanEchangeSoap">
    <sequence>
     <element name="description" nillable="true" type="xsd:string"/>
     <element name="nom" nillable="true" type="xsd:string"/>
     <element name="id" nillable="true" type="xsd:string"/>
    </sequence>
   </complexType>
    <complexType abstract="true" name="BeanArticleSoap">
    <complexContent>
     <extension base="tns1:BeanEchangeSoap">
      <sequence>
       <element name="dateCommercialisation" nillable="true" type="xsd:dateTime"/>
       <element name="lesMarches" nillable="true" type="impl:ArrayOf_xsd_anyType"/>
       <element name="idCatalogueRattachement" nillable="true" type="xsd:string"/>
      </sequence>
     </extension>
    </complexContent>
   </complexType>
    <complexType name="BeanMaterielSoap">
    <complexContent>
     <extension base="tns1:BeanArticleSoap">
      <sequence>
       <element name="prix" type="xsd:float"/>
       <element name="couleur" nillable="true" 
        type="xsd:string"/>
      </sequence>
     </extension>
    </complexContent>
   </complexType>
   <complexType name="BeanMarcheSoap">
    <complexContent>
     <extension base="tns1:BeanEchangeSoap">
      <sequence/>
     </extension>
    </complexContent>
   </complexType>
   
  </schema>
 </wsdl:types>
     <wsdl:message name="retourneBeanArticleRequest">
        <wsdl:part name="parameters" element="impl:retourneBeanArticle"/>
     </wsdl:message>
     <wsdl:message name="retourneBeanArticleResponse">
        <wsdl:part name="parameters" element="impl:retourneBeanArticleResponse"/>
     </wsdl:message>
     <wsdl:portType name="ServiceTest">
        <wsdl:operation name="retourneBeanArticle">
           <wsdl:input name="retourneBeanArticleRequest" message="impl:retourneBeanArticleRequest"/>
           <wsdl:output name="retourneBeanArticleResponse" message="impl:retourneBeanArticleResponse"/>
        </wsdl:operation>
     </wsdl:portType>
     <wsdl:binding name="ServicesSoapBinding" type="impl:ServiceTest">
        <wsdlsoap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>
        <wsdl:operation name="retourneBeanArticle">
           <wsdlsoap:operation soapAction=""/>
           <wsdl:input name="retourneBeanArticleRequest">
              <wsdlsoap:body use="literal"/>
           </wsdl:input>
           <wsdl:output name="retourneBeanArticleResponse">
              <wsdlsoap:body use="literal"/>
           </wsdl:output>
        </wsdl:operation>
     </wsdl:binding>
     <wsdl:service name="ServiceTestService">
        <wsdl:port name="Services" binding="impl:ServicesSoapBinding">
           <wsdlsoap:address location="http://localhost:9000/TestService/services/Services"/>
        </wsdl:port>
     </wsdl:service>
  </wsdl:definitions>

  wsd d:
  <service name="Services" provider="java:RPC" style="wrapped" use="literal">
 <wsdlFile>/wsdl/TestService.wsdl</wsdlFile>
      <parameter name="wsdlTargetNamespace" value="urn:testservices"/>
      <parameter name="wsdlServiceElement" value="ServiceTestService"/>
      <parameter name="schemaQualified" value="http://echange.soapsoo.applicatif.prototype.clara,urn:testservices"/>
      <parameter name="wsdlServicePort" value="Services"/>
      <parameter name="className" value="test.heritage.ServiceTestImpl"/>
      <parameter name="wsdlPortType" value="ServiceTest"/>
      <parameter name="typeMappingVersion" value="1.2"/>
      <operation name="retourneBeanArticle" qname="operNS:retourneBeanArticle" xmlns:operNS="urn:testservices" returnQName="retNS:retourneBeanArticleReturn" xmlns:retNS="urn:testservices" returnType="rtns:BeanArticleSoap" xmlns:rtns="http://echange.soapsoo.applicatif.prototype.clara" soapAction="">
      </operation>
      <parameter name="allowedMethods" value="retourneBeanArticle"/>
      
      <typeMapping xmlns:ns="http://echange.soapsoo.applicatif.prototype.clara" qname="ns:BeanMaterielSoap" type="java:clara.prototype.applicatif.soapsoo.echange.BeanMaterielSoap" serializer="org.apache.axis.encoding.ser.BeanSerializerFactory" deserializer="org.apache.axis.encoding.ser.BeanDeserializerFactory" encodingStyle=""/>
      <arrayMapping xmlns:ns="urn:testservices" qname="ns:ArrayOf_xsd_anyType" type="java:java.lang.Object[]" innerType="cmp-ns:anyType" xmlns:cmp-ns="http://www.w3.org/2001/XMLSchema" encodingStyle=""/>
      <typeMapping xmlns:ns="http://echange.soapsoo.applicatif.prototype.clara" qname="ns:BeanArticleSoap" type="java:clara.prototype.applicatif.soapsoo.echange.BeanArticleSoap" serializer="org.apache.axis.encoding.ser.BeanSerializerFactory" deserializer="org.apache.axis.encoding.ser.BeanDeserializerFactory" encodingStyle=""/>
      <typeMapping xmlns:ns="http://echange.soapsoo.applicatif.prototype.clara" qname="ns:BeanMarcheSoap" type="java:clara.prototype.applicatif.soapsoo.echange.BeanMarcheSoap" serializer="org.apache.axis.encoding.ser.BeanSerializerFactory" deserializer="org.apache.axis.encoding.ser.BeanDeserializerFactory" encodingStyle=""/>
      <typeMapping xmlns:ns="http://echange.soapsoo.applicatif.prototype.clara" qname="ns:BeanEchangeSoap" type="java:clara.prototype.applicatif.soapsoo.echange.BeanEchangeSoap" serializer="org.apache.axis.encoding.ser.BeanSerializerFactory" deserializer="org.apache.axis.encoding.ser.BeanDeserializerFactory" encodingStyle=""/>
      <arrayMapping xmlns:ns="urn:testservices" qname="ns:&gt;retourneBeanArticleResponse" type="java:clara.prototype.applicatif.soapsoo.echange.BeanArticleSoap[]" innerType="cmp-ns:BeanArticleSoap" xmlns:cmp-ns="http://echange.soapsoo.applicatif.prototype.clara" encodingStyle=""/>
  </service>
   
  class java:
  public class ServiceTestImpl implements ServiceTest {
      public static void main(String[] args) {
    }
       public BeanArticleSoap[] retourneBeanArticle() {
        
        BeanArticleSoap[] tab= new BeanArticleSoap[1];
        Date d= new Date("12/10/06");
        BeanMarcheSoap marche= new BeanMarcheSoap("Marchéexemple","marche entreprise","3");
        Vector marches = new Vector(); 
        marches.add(marche);
      &n bsp; BeanMaterielSoap mater=new BeanMaterielSoap("2","tondeuse","aucune",d,"3",marches.toArray(),"rouge",12);
        BeanArticleSoap art=mater;
        tab[0]=(BeanMaterielSoap)mater;
        
        
        return tab;
    }
}
   
  i have done a wsdl2java to generate the java files
   
  thanks.
   
   
  
Dies Koper <di...@jp.fujitsu.com> a écrit :
  Hello François,

I'd like to try to reproduce your problem. Could you post a (small) WSDL 
file, client and impl file to do this?
I'm wondering where the problem is.. WSDD, SOAP message..

Regards,
Dies


françois françois wrote:
> Hi everybody
> 
> i have tried to migrate from axis 1.2.1 to axis 1.3
> it seems that the ArraySerializer has changed between this 2 versions
> and it caused some problems with inheritance:
> If you ve got for example: an abstract class animal and a class dog who extends animal
> and an Array of animal
> so in this way :
> public abstract class Animal{
> private String nom;
> ......
> }
> public class Dog extends Animal{
> private String color;
> ........
> }
> your webservice expose this method below for example:
> public Animal [] getListOfAnimals(){
> Animal [] array_Animals=new Animals[1];
> Dog doggy= new doggy("pluto","black");
> array_Animals[0]=doggy;
> return array_Animals;
> }
> In axis 1.3 when you call getListOfAnimals(), you lost the informations of Dog so you receive to your client
> only an array which contains Animal type Object but not Dog objects and the client failed : instantiation exception....
> In axis 1.2.1 you still have the information that the function getListOfAnimals() return an array of Animal which contains 
> Dog objects.
> It happens only with array, i have tried to do other examples in many ways i have got the same problems...
> I use document wrapped/literal.
> Has someone got the same problems ?any explanations? is it a bugs?
> Thank you.
> 
> 
> 
> ---------------------------------
> Nouveau : téléphonez moins cher avec Yahoo! Messenger ! Découvez les tarifs exceptionnels pour appeler la France et l'international.Téléchargez la version beta.

-- 
Dies KOPER (changed on 1 July 2005)
Fujitsu Ltd - MWPF1 (changed from MWPF3 on 21 Nov 2005)
2-15-16, Shin-Yokohama, Kouhoku-ku, Yokohama, 222-0033, Japan 
Tel. +81(45)-475-5605 (internal 7181-4217)

  

    
---------------------------------
  Nouveau : téléphonez moins cher avec Yahoo! Messenger ! Découvez les tarifs exceptionnels pour appeler la France et l'international. Téléchargez la version beta.  


		
---------------------------------
 Nouveau : téléphonez moins cher avec Yahoo! Messenger ! Découvez les tarifs exceptionnels pour appeler la France et l'international.Téléchargez la version beta.

Re: problems to migrate from AXIS 1.2.1 to AXIS 1.3

Posted by françois françois <fv...@yahoo.fr>.
Hi Dies
   
  I give you another examples with the same problems
   
   
  <?xml version="1.0" encoding="UTF-8"?>
<wsdl:definitions targetNamespace="urn:testservices" xmlns:impl="urn:testservices" xmlns:intf="urn:testservices" xmlns:apachesoap="http://xml.apache.org/xml-soap" xmlns:wsdlsoap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:tns1="http://echange.soapsoo.applicatif.prototype.clara" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">
<!--WSDL created by Apache Axis version: 1.3
Built on Oct 05, 2005 (05:23:37 EDT)-->
 <wsdl:types>
  <schema xmlns="http://www.w3.org/2001/XMLSchema" targetNamespace="urn:testservices" elementFormDefault="qualified">
   <import namespace="http://echange.soapsoo.applicatif.prototype.clara"/>
   <element name="retourneBeanArticle">
    <complexType/>
   </element>
   <element name="retourneBeanArticleResponse">
    <complexType>
     <sequence>
      <element name="retourneBeanArticleReturn" type="tns1:BeanArticleSoap" maxOccurs="unbounded"/>
     </sequence>
    </complexType>
   </element>
   <complexType name="ArrayOf_xsd_anyType">
    <sequence>
     <element name="item" type="xsd:anyType" minOccurs="0" maxOccurs="unbounded"/>
    </sequence>
   </complexType>
  </schema>
  <schema xmlns="http://www.w3.org/2001/XMLSchema" targetNamespace="http://echange.soapsoo.applicatif.prototype.clara" elementFormDefault="qualified">
   <import namespace="urn:testservices"/>
   <complexType abstract="true" name="BeanEchangeSoap">
    <sequence>
     <element name="description" nillable="true" type="xsd:string"/>
     <element name="nom" nillable="true" type="xsd:string"/>
     <element name="id" nillable="true" type="xsd:string"/>
    </sequence>
   </complexType>
   <complexType abstract="true" name="BeanArticleSoap">
    <complexContent>
     <extension base="tns1:BeanEchangeSoap">
      <sequence>
       <element name="dateCommercialisation" nillable="true" type="xsd:dateTime"/>
       <element name="lesMarches" nillable="true" type="impl:ArrayOf_xsd_anyType"/>
       <element name="idCatalogueRattachement" nillable="true" type="xsd:string"/>
      </sequence>
     </extension>
    </complexContent>
   </complexType>
    <complexType name="BeanMaterielSoap">
    <complexContent>
     <extension base="tns1:BeanArticleSoap">
      <sequence>
       <element name="prix" type="xsd:float"/>
       <element name="couleur" nillable="true" 
        type="xsd:string"/>
      </sequence>
     </extension>
    </complexContent>
   </complexType>
   <complexType name="BeanMarcheSoap">
    <complexContent>
     <extension base="tns1:BeanEchangeSoap">
      <sequence/>
     </extension>
    </complexContent>
   </complexType>
   
  </schema>
 </wsdl:types>
     <wsdl:message name="retourneBeanArticleRequest">
        <wsdl:part name="parameters" element="impl:retourneBeanArticle"/>
     </wsdl:message>
     <wsdl:message name="retourneBeanArticleResponse">
        <wsdl:part name="parameters" element="impl:retourneBeanArticleResponse"/>
     </wsdl:message>
     <wsdl:portType name="ServiceTest">
        <wsdl:operation name="retourneBeanArticle">
           <wsdl:input name="retourneBeanArticleRequest" message="impl:retourneBeanArticleRequest"/>
           <wsdl:output name="retourneBeanArticleResponse" message="impl:retourneBeanArticleResponse"/>
        </wsdl:operation>
     </wsdl:portType>
     <wsdl:binding name="ServicesSoapBinding" type="impl:ServiceTest">
        <wsdlsoap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>
        <wsdl:operation name="retourneBeanArticle">
           <wsdlsoap:operation soapAction=""/>
           <wsdl:input name="retourneBeanArticleRequest">
              <wsdlsoap:body use="literal"/>
           </wsdl:input>
           <wsdl:output name="retourneBeanArticleResponse">
              <wsdlsoap:body use="literal"/>
           </wsdl:output>
        </wsdl:operation>
     </wsdl:binding>
     <wsdl:service name="ServiceTestService">
        <wsdl:port name="Services" binding="impl:ServicesSoapBinding">
           <wsdlsoap:address location="http://localhost:9000/TestService/services/Services"/>
        </wsdl:port>
     </wsdl:service>
  </wsdl:definitions>

  wsdd:
  <service name="Services" provider="java:RPC" style="wrapped" use="literal">
 <wsdlFile>/wsdl/TestService.wsdl</wsdlFile>
      <parameter name="wsdlTargetNamespace" value="urn:testservices"/>
      <parameter name="wsdlServiceElement" value="ServiceTestService"/>
      <parameter name="schemaQualified" value="http://echange.soapsoo.applicatif.prototype.clara,urn:testservices"/>
      <parameter name="wsdlServicePort" value="Services"/>
      <parameter name="className" value="test.heritage.ServiceTestImpl"/>
      <parameter name="wsdlPortType" value="ServiceTest"/>
      <parameter name="typeMappingVersion" value="1.2"/>
      <operation name="retourneBeanArticle" qname="operNS:retourneBeanArticle" xmlns:operNS="urn:testservices" returnQName="retNS:retourneBeanArticleReturn" xmlns:retNS="urn:testservices" returnType="rtns:BeanArticleSoap" xmlns:rtns="http://echange.soapsoo.applicatif.prototype.clara" soapAction="">
      </operation>
      <parameter name="allowedMethods" value="retourneBeanArticle"/>
      
      <typeMapping xmlns:ns="http://echange.soapsoo.applicatif.prototype.clara" qname="ns:BeanMaterielSoap" type="java:clara.prototype.applicatif.soapsoo.echange.BeanMaterielSoap" serializer="org.apache.axis.encoding.ser.BeanSerializerFactory" deserializer="org.apache.axis.encoding.ser.BeanDeserializerFactory" encodingStyle=""/>
      <arrayMapping xmlns:ns="urn:testservices" qname="ns:ArrayOf_xsd_anyType" type="java:java.lang.Object[]" innerType="cmp-ns:anyType" xmlns:cmp-ns="http://www.w3.org/2001/XMLSchema" encodingStyle=""/>
      <typeMapping xmlns:ns="http://echange.soapsoo.applicatif.prototype.clara" qname="ns:BeanArticleSoap" type="java:clara.prototype.applicatif.soapsoo.echange.BeanArticleSoap" serializer="org.apache.axis.encoding.ser.BeanSerializerFactory" deserializer="org.apache.axis.encoding.ser.BeanDeserializerFactory" encodingStyle=""/>
      <typeMapping xmlns:ns="http://echange.soapsoo.applicatif.prototype.clara" qname="ns:BeanMarcheSoap" type="java:clara.prototype.applicatif.soapsoo.echange.BeanMarcheSoap" serializer="org.apache.axis.encoding.ser.BeanSerializerFactory" deserializer="org.apache.axis.encoding.ser.BeanDeserializerFactory" encodingStyle=""/>
      <typeMapping xmlns:ns="http://echange.soapsoo.applicatif.prototype.clara" qname="ns:BeanEchangeSoap" type="java:clara.prototype.applicatif.soapsoo.echange.BeanEchangeSoap" serializer="org.apache.axis.encoding.ser.BeanSerializerFactory" deserializer="org.apache.axis.encoding.ser.BeanDeserializerFactory" encodingStyle=""/>
      <arrayMapping xmlns:ns="urn:testservices" qname="ns:&gt;retourneBeanArticleResponse" type="java:clara.prototype.applicatif.soapsoo.echange.BeanArticleSoap[]" innerType="cmp-ns:BeanArticleSoap" xmlns:cmp-ns="http://echange.soapsoo.applicatif.prototype.clara" encodingStyle=""/>
  </service>
   
  class java:
  public class ServiceTestImpl implements ServiceTest {
      public static void main(String[] args) {
    }
       public BeanArticleSoap[] retourneBeanArticle() {
        
        BeanArticleSoap[] tab= new BeanArticleSoap[1];
        Date d= new Date("12/10/06");
        BeanMarcheSoap marche= new BeanMarcheSoap("Marchéexemple","marche entreprise","3");
        Vector marches = new Vector(); 
        marches.add(marche);
        BeanMaterielSoap mater=new BeanMaterielSoap("2","tondeuse","aucune",d,"3",marches.toArray(),"rouge",12);
        BeanArticleSoap art=mater;
        tab[0]=(BeanMaterielSoap)mater;
        
        
        return tab;
    }
}
   
  i have done a wsdl2java to generate the java files
   
  thanks.
   
   
  
Dies Koper <di...@jp.fujitsu.com> a écrit :
  Hello François,

I'd like to try to reproduce your problem. Could you post a (small) WSDL 
file, client and impl file to do this?
I'm wondering where the problem is.. WSDD, SOAP message..

Regards,
Dies


françois françois wrote:
> Hi everybody
> 
> i have tried to migrate from axis 1.2.1 to axis 1.3
> it seems that the ArraySerializer has changed between this 2 versions
> and it caused some problems with inheritance:
> If you ve got for example: an abstract class animal and a class dog who extends animal
> and an Array of animal
> so in this way :
> public abstract class Animal{
> private String nom;
> ......
> }
> public class Dog extends Animal{
> private String color;
> ........
> }
> your webservice expose this method below for example:
> public Animal [] getListOfAnimals(){
> Animal [] array_Animals=new Animals[1];
> Dog doggy= new doggy("pluto","black");
> array_Animals[0]=doggy;
> return array_Animals;
> }
> In axis 1.3 when you call getListOfAnimals(), you lost the informations of Dog so you receive to your client
> only an array which contains Animal type Object but not Dog objects and the client failed : instantiation exception....
> In axis 1.2.1 you still have the information that the function getListOfAnimals() return an array of Animal which contains 
> Dog objects.
> It happens only with array, i have tried to do other examples in many ways i have got the same problems...
> I use document wrapped/literal.
> Has someone got the same problems ?any explanations? is it a bugs?
> Thank you.
> 
> 
> 
> ---------------------------------
> Nouveau : téléphonez moins cher avec Yahoo! Messenger ! Découvez les tarifs exceptionnels pour appeler la France et l'international.Téléchargez la version beta.

-- 
Dies KOPER (changed on 1 July 2005)
Fujitsu Ltd - MWPF1 (changed from MWPF3 on 21 Nov 2005)
2-15-16, Shin-Yokohama, Kouhoku-ku, Yokohama, 222-0033, Japan
Tel. +81(45)-475-5605 (internal 7181-4217)

  


		
---------------------------------
 Nouveau : téléphonez moins cher avec Yahoo! Messenger ! Découvez les tarifs exceptionnels pour appeler la France et l'international.Téléchargez la version beta.

Re: problems to migrate from AXIS 1.2.1 to AXIS 1.3

Posted by Dies Koper <di...@jp.fujitsu.com>.
Hello François,

I'd like to try to reproduce your problem. Could you post a (small) WSDL 
file, client and impl file to do this?
I'm wondering where the problem is.. WSDD, SOAP message..

Regards,
Dies


françois françois wrote:
> Hi everybody
>    
>   i have tried to migrate from axis 1.2.1 to axis 1.3
> it seems that the ArraySerializer has changed between this 2 versions
> and it caused some problems with inheritance:
> If you ve got for example: an abstract class animal and a class dog who extends animal
> and an Array of animal
> so in this way :
>   public abstract class Animal{
> private String nom;
>   ......
>   }
>   public class Dog extends Animal{
>   private String color;
> ........
>   }
>   your webservice expose this method below for example:
>   public Animal [] getListOfAnimals(){
>   Animal [] array_Animals=new Animals[1];
> Dog doggy= new doggy("pluto","black");
> array_Animals[0]=doggy;
> return array_Animals;
> }
>   In axis 1.3 when you call getListOfAnimals(), you lost the informations of Dog so you receive to your client
> only an array which contains Animal type Object  but not Dog objects and the client failed : instantiation exception....
>   In axis 1.2.1 you still have  the information that the function getListOfAnimals() return an array of Animal which contains 
> Dog objects.
>   It happens only with array, i have tried to do other examples in many ways i have got the same problems...
>   I use document wrapped/literal.
> Has someone got the same problems ?any explanations? is it a bugs?
>   Thank you.
> 
> 
> 		
> ---------------------------------
>  Nouveau : téléphonez moins cher avec Yahoo! Messenger ! Découvez les tarifs exceptionnels pour appeler la France et l'international.Téléchargez la version beta.

-- 
Dies KOPER <di...@jp.fujitsu.com> (changed on 1 July 2005)
Fujitsu Ltd - MWPF1  (changed from MWPF3 on 21 Nov 2005)
2-15-16, Shin-Yokohama, Kouhoku-ku, Yokohama, 222-0033, Japan
Tel. +81(45)-475-5605  (internal 7181-4217)