You are viewing a plain text version of this content. The canonical link for it is here.
Posted to java-dev@axis.apache.org by "Jayachandra Sekhara Rao Sunkara (JIRA)" <ax...@ws.apache.org> on 2005/06/13 16:50:00 UTC

[jira] Reopened: (AXIS-1955) Axis 1.2rc3 does not write derived types from abstract classes to wsdl

     [ http://issues.apache.org/jira/browse/AXIS-1955?page=all ]
     
Jayachandra Sekhara Rao Sunkara reopened AXIS-1955:
---------------------------------------------------

     Assign To: Jayachandra Sekhara Rao Sunkara

Hi Clint,
Reopening the bug. Can you come up with a test case to quickly reproduce the problem, wrap all the files needed as a zip/jar...just the way you did earlier (test.jar).

> Axis 1.2rc3 does not write derived types from abstract classes to wsdl
> ----------------------------------------------------------------------
>
>          Key: AXIS-1955
>          URL: http://issues.apache.org/jira/browse/AXIS-1955
>      Project: Apache Axis
>         Type: Bug
>   Components: WSDL processing
>     Versions: 1.2RC3
>  Environment: os: ms windows xp pro build 2600 with sp 2
> app server: resin 2.1.14
> ide: eclipse 3.1M6 (used to launch and debug the app)
> hardware: p4 3GHz + 1.0 G ram and ample hd space
>     Reporter: clint dovholuk
>     Assignee: Jayachandra Sekhara Rao Sunkara
>      Fix For: 1.2.1
>  Attachments: 1955Patch_cvs_diff.txt, Patch_BeanSerializer.diff, test.jar
>
> After upgrading to Axis 1.2rc3 I noticed that the wsdl is no longer being written properly when using derived types from abstract classes.
> Test Case: (i hope you perserve spaces as this is indented properly when i submit it)
>   create these files and compile them:
>     TestObj.java
>         package test;
>         public class TestObj {
>           public void testShapeHolder(ShapeHolder shapeHolder) {
>             System.err.println("SHAPE CLASS: " + shapeHolder.getClass());
>           }
>           /*
>           this is commented out on purpose, you will remove it in the last steps of the test case
>           public void testAbstractShape(AbstractShape shape) {
>             System.err.println("SHAPE CLASS: " + shape.getClass());
>           }
>           */
>         }
>         
>     ShapeTester.java
>         package test;
>         public class ShapeTester {
>           private AbstractShape shape;
>           public AbstractShape getShape () { return shape; }
>           //public void setShape (AbstractShape shape) { this.shape = shape; }
>         }
>     
>     AbstractShape.java
>         package test;
>         public abstract class AbstractShape {}
>     
>     Square.java
>         package test;
>         public class Square extends AbstractShape {}
>     
>     Circle.java
>         package test;
>         public class Circle extends AbstractShape {}
>   
>   Add this service to the server-config.wsdd
>    <service name="absTest" provider="java:RPC">
>      <parameter name="allowedMethods" value="*" />
>      <parameter name="className" value="test.TestObj" />
>      <beanMapping qname="THENS:ShapeTester" xmlns:THENS="myWebApp:ShapeTester" languageSpecificType="java:test.ShapeTester"/>
>      <beanMapping qname="THENS:Square" xmlns:THENS="myWebApp:Square" languageSpecificType="java:test.Square" />
>      <beanMapping qname="THENS:Circle" xmlns:THENS="myWebApp:Circle" languageSpecificType="java:test.Circle" />
>    </service>
>   
>   
>   install axis 1.1 and get it running
>   
>   hit the wsdl and look at the wsdl:types, on my box it looks like:
>     <wsdl:types>
>       <schema targetNamespace="http://test" xmlns="http://www.w3.org/2001/XMLSchema">
>         <import namespace="http://schemas.xmlsoap.org/soap/encoding/" />
>         <complexType abstract="true" name="AbstractShape">
>           <sequence />
>         </complexType>
>       </schema>
>       <schema targetNamespace="myWebApp:Circle" xmlns="http://www.w3.org/2001/XMLSchema">
>         <import namespace="http://schemas.xmlsoap.org/soap/encoding/" />
>         <complexType name="Circle">
>           <complexContent>
>             <extension base="tns2:AbstractShape">
>               <sequence />
>             </extension>
>           </complexContent>
>         </complexType>
>       </schema>
>       <schema targetNamespace="myWebApp:ShapeTester" xmlns="http://www.w3.org/2001/XMLSchema">
>         <import namespace="http://schemas.xmlsoap.org/soap/encoding/" />
>         <complexType name="ShapeTester">
>           <sequence>
>             <element name="shape" nillable="true" type="tns2:AbstractShape" />
>           </sequence>
>         </complexType>
>       </schema>
>       <schema targetNamespace="myWebApp:Square" xmlns="http://www.w3.org/2001/XMLSchema">
>         <import namespace="http://schemas.xmlsoap.org/soap/encoding/" />
>         <complexType name="Square">
>           <complexContent>
>             <extension base="tns2:AbstractShape">
>               <sequence />
>             </extension>
>           </complexContent>
>         </complexType>
>       </schema>
>     </wsdl:types>
>   
>   replace axis libraries (I replaced axis.jar, saaj.jar, and wsdl.jar) with corresponding axis 1.2rc3 jars
>   
>   hit the wsdl and look at the wsdl:types, i NOW get: (that can't be right, is it?)
>     <wsdl:types>
>       <schema targetNamespace="http://test" xmlns="http://www.w3.org/2001/XMLSchema">
>         <import namespace="myWebApp:ShapeTester" />
>         <import namespace="http://schemas.xmlsoap.org/soap/encoding/" />
>         <complexType abstract="true" name="AbstractShape">
>           <sequence />
>         </complexType>
>       </schema>
>       <schema targetNamespace="myWebApp:ShapeTester" xmlns="http://www.w3.org/2001/XMLSchema">
>         <import namespace="http://test" />
>         <import namespace="http://schemas.xmlsoap.org/soap/encoding/" />
>         <complexType name="ShapeTester">
>           <sequence>
>             <element name="shape" nillable="true" type="tns2:AbstractShape" />
>           </sequence>
>         </complexType>
>       </schema>
>     </wsdl:types>
>   
>   uncomment the method in TestObj named testAbstractShape
>   
>   restart the application
>   
>   hit the wsdl. you now get the FULL wsdl written out including the types: 
>     <wsdl:types>
>       <schema targetNamespace="http://test" xmlns="http://www.w3.org/2001/XMLSchema">
>         <import namespace="myWebApp:ShapeTester" />
>         <import namespace="myWebApp:Circle" />
>         <import namespace="myWebApp:Square" />
>         <import namespace="http://schemas.xmlsoap.org/soap/encoding/" />
>         <complexType abstract="true" name="AbstractShape">
>           <sequence />
>         </complexType>
>       </schema>
>       <schema targetNamespace="myWebApp:ShapeTester" xmlns="http://www.w3.org/2001/XMLSchema">
>         <import namespace="myWebApp:Circle" />
>         <import namespace="http://test" />
>         <import namespace="myWebApp:Square" />
>         <import namespace="http://schemas.xmlsoap.org/soap/encoding/" />
>         <complexType name="ShapeTester">
>           <sequence>
>             <element name="shape" nillable="true" type="tns2:AbstractShape" />
>           </sequence>
>         </complexType>
>       </schema>
>       <schema targetNamespace="myWebApp:Square" xmlns="http://www.w3.org/2001/XMLSchema">
>         <import namespace="myWebApp:ShapeTester" />
>         <import namespace="myWebApp:Circle" />
>         <import namespace="http://test" />
>         <import namespace="http://schemas.xmlsoap.org/soap/encoding/" />
>         <complexType name="Square">
>           <complexContent>
>             <extension base="tns2:AbstractShape">
>               <sequence />
>             </extension>
>           </complexContent>
>         </complexType>
>       </schema>
>       <schema targetNamespace="myWebApp:Circle" xmlns="http://www.w3.org/2001/XMLSchema">
>         <import namespace="myWebApp:ShapeTester" />
>         <import namespace="http://test" />
>         <import namespace="myWebApp:Square" />
>         <import namespace="http://schemas.xmlsoap.org/soap/encoding/" />
>         <complexType name="Circle">
>           <complexContent>
>             <extension base="tns2:AbstractShape">
>               <sequence />
>             </extension>
>           </complexContent>
>         </complexType>
>       </schema>
>     </wsdl:types>
>   

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
   http://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see:
   http://www.atlassian.com/software/jira