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 "Davanum Srinivas (JIRA)" <ax...@ws.apache.org> on 2005/08/01 05:03:39 UTC

[jira] Updated: (AXIS-2118) No Helper class and deploy.wsdd incorrect for class containing an array of Strings

     [ http://issues.apache.org/jira/browse/AXIS-2118?page=all ]

Davanum Srinivas updated AXIS-2118:
-----------------------------------

    Priority: Critical  (was: Blocker)

>  No Helper class and deploy.wsdd incorrect for class containing an array of Strings
> -----------------------------------------------------------------------------------
>
>          Key: AXIS-2118
>          URL: http://issues.apache.org/jira/browse/AXIS-2118
>      Project: Apache Axis
>         Type: Bug
>   Components: WSDL processing
>     Versions: 1.2.1
>  Environment: Axis service deployed to websphere server
> WebSphere Platform 5.1 [BASE 5.1.1 a0426.01] [JDK 1.4.2 cn1420-20040626] [PME 5.1.1 o0429.02]  running with process name localhost\localhost\server1 and process id 3052
> Host Operating System is Windows 2000, version 5.0
> Java version = J2RE 1.4.2 IBM Windows 32 build cn1420-20040626 (JIT enabled: jitc), Java Compiler = jitc, Java VM name = Classic VM
> Microsoft Development Environment 2003
> Microsoft .NET Framework 1.1
> Microsoft Visual C# .NET 69586-335-0000007-18998 
>     Reporter: Aedemar Cooke
>     Assignee: Venkat Reddy
>     Priority: Critical
>  Attachments: test.wsdl
>
> I have a class that has one property, an array of strings. On its own it is not much use, but I have other classes that extend it so unless I get this resolved, I can't upgrade my application from using Axis1.1 rpc/encoded to Axis1.2.1 wrapped/literal 
> My WSDL for the class is (see attached file test.wsdl for complete wsdl)
>  <complexType name="StringArray">
>     <sequence>
>      <element name="values" nillable="true" maxOccurs="unbounded" type="xsd:string"/>
>     </sequence>
>    </complexType>
> When I use the org.apache.axis.wsdl.WSDL2Java -command specifying the  --helperGen option, Axis doesn't generate a Helper class or class for the StringArray class.
> The deploy.wsdd file contains an array mapping:rather than a type mapping:
>  <arrayMapping
>         xmlns:ns="http://test.axis"
>         qname="ns:StringArray"
>         type="java:java.lang.String[]"
>         innerType="cmp-ns:string" xmlns:cmp-ns="http://www.w3.org/2001/XMLSchema"
>         encodingStyle=""
>       />
> Calling a web service method that takes a StringArray as a parameter causes a Sax Exception as it says it has found characters when it is expecting an array.
> If I add another property to the complex type definition, say a boolean 
>    <complexType name="StringArray">
>     <sequence>
>      <element name="values" nillable="true" maxOccurs="unbounded" type="xsd:string"/>
>      <element name="notInUse" type="xsd:boolean"/>
>     </sequence>
>    </complexType>
> I do get the helper class with the following type description
>  static {
>         typeDesc.setXmlType(new javax.xml.namespace.QName("http://test.axis", "StringArray"));
>         org.apache.axis.description.ElementDesc elemField = new org.apache.axis.description.ElementDesc();
>         elemField.setFieldName("values");
>         elemField.setXmlName(new javax.xml.namespace.QName("http://test.axis", "values"));
>         elemField.setXmlType(new javax.xml.namespace.QName("http://www.w3.org/2001/XMLSchema", "string"));
>         elemField.setNillable(true);
>         elemField.setMaxOccursUnbounded(true);
>         typeDesc.addFieldDesc(elemField);
>         elemField = new org.apache.axis.description.ElementDesc();
>         elemField.setFieldName("notInUse");
>         elemField.setXmlName(new javax.xml.namespace.QName("http://test.axis", "notInUse"));
>         elemField.setXmlType(new javax.xml.namespace.QName("http://www.w3.org/2001/XMLSchema", "boolean"));
>         elemField.setNillable(false);
>         typeDesc.addFieldDesc(elemField);
>     }
> and the deploy.wsdd has a type mapping
> <typeMapping
>         xmlns:ns="http://test.axis"
>         qname="ns:StringArray"
>         type="java:axis.test.StringArray"
>         serializer="org.apache.axis.encoding.ser.BeanSerializerFactory"
>         deserializer="org.apache.axis.encoding.ser.BeanDeserializerFactory"
>         encodingStyle=""
>       />
> If I manually create a Helper class for the version of the class without a boolean property and edit the deploy.wsdd to have the type mapping rather than the array mapping, my application works.

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