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 Davanum Srinivas <da...@gmail.com> on 2005/07/13 20:55:51 UTC

Re: No Helper class and deploy.wsdd incorrect for class containing an array of Strings

Please log a bug report and mark it a blocker.

-- dims

On 7/13/05, aedemar.cooke@rbc.com <ae...@rbc.com> wrote:
>  
> 
> Hi, 
> 
> 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. 
> 
> If anyone knows of this as a known bug can you let me know so I can put a
> watch on it. 
> 
> Thanks, 
> 
> Aedemar 
>  
> 
> Environment: Axis Version: 1.2.1 <<test.wsdl>> 
> 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 
> __________________________________________________________________________________________________________________________________
> 
> This e-mail may be privileged and/or confidential, and the sender does not
> waive any related rights and obligations.
> Any distribution, use or copying of this e-mail or the information it
> contains by other than an intended recipient is unauthorized.
> If you received this e-mail in error, please advise me (by return e-mail or
> otherwise) immediately. 
> 
> Ce courrier électronique est confidentiel et protégé. L'expéditeur ne
> renonce pas aux droits et obligations qui s'y rapportent.
> Toute diffusion, utilisation ou copie de ce message ou des renseignements
> qu'il contient par une personne autre que le (les) destinataire(s)
> désigné(s) est interdite.
> Si vous recevez ce courrier électronique par erreur, veuillez m'en aviser
> immédiatement, par retour de courrier électronique ou par un autre moyen.
>  
> 


-- 
Davanum Srinivas -http://blogs.cocoondev.org/dims/