Thanks for reporting this bug, Nuno, Luis.  I fixed it.

Russell Butek
[EMAIL PROTECTED]


"Luis Novais" <[EMAIL PROTECTED]> on 03/14/2002 06:06:36 AM

Please respond to [EMAIL PROTECTED]

To:    <[EMAIL PROTECTED]>
cc:
Subject:    Re: Problem with WSDL2JAVA (generated code doesn't compile)



The solution is not giving the name "value" to the  element, once the code
generation uses this name in the argument of a method.

Chears
Luis Novais

----- Original Message -----
From: "Nuno Guerreiro" <[EMAIL PROTECTED]>
To: <[EMAIL PROTECTED]>
Sent: Wednesday, March 13, 2002 7:36 PM
Subject: Problem with WSDL2JAVA (generated code doesn't compile)


> I have the following element defined in a schema:
>
> <xs:element name="confirmationCode" minOccurs="0">
>   <xs:complexType>
>     <xs:all>
>       <xs:element name="value" type="CodeValueType"
> minOccurs="3" maxOccurs="3"/>
>     </xs:all>
>   </xs:complexType>
> </xs:element>
>
> The CodeValueType definition is as follows:
>
> <xs:simpleType name="CodeValueType">
>   <xs:restriction base="xs:byte">
>     <xs:minInclusive value="0"/>
>     <xs:maxInclusive value="9"/>
>   </xs:restriction>
> </xs:simpleType>
>
>
> The code generated by WSDL2JAVA (below) when I apply
> it to a wsdl file which uses the confirmationCode
> element contains an error in line 29 (method
> setValue()), since it tries to compare a primitive
> type to null. Does this happen with every primitive
> type? I'm using the latest version of AXIS.
>
>
> /**
>  * ConfirmationCode.java
>  *
>  * This file was auto-generated from WSDL
>  * by the Apache Axis Wsdl2java emitter.
>  */
>
> package pt.bcp.cidadebcp.webservices.system;
>
> public class ConfirmationCode implements
> java.io.Serializable {
>     private byte[] value;
>
>     public ConfirmationCode() {
>     }
>
>     public byte[] getValue() {
>         return value;
>     }
>
>     public void setValue(byte[] value) {
>         this.value = value;
>     }
>
>     public byte getValue(int i) {
>         return value[i];
>     }
>
>     public void setValue(int i, byte value) {
>         if (value == null ||
>             value.length <= i) {
>             byte[] a = new byte[i + 1];
>             if (value != null) {
>                 for(int j=0; j<value.length; j++)
>                     a[j] = value[j];
>             }
>             value = a;
>         }
>         value[i] = value;
>     }
>
>     public boolean equals(Object obj) {
>         // compare elements
>         ConfirmationCode other = (ConfirmationCode)
> obj;
>         if (this == obj) return true;
>         if (! (obj instanceof ConfirmationCode))
> return false;
>         return
>             ((value==null && other.getValue()==null)
> ||
>              (value!=null &&
>               value.equals(other.getValue())));
>     }
> }
>
>
> Error produced:
>
>
> Found 7 semantic errors compiling
>
"D:/projects/WebServices/generated/pt/bcp/cidadebcp/webservices/system/Confi

rmationCode.java":
>
>     29.         if (value == null ||
>                     <----------->
> *** Error: The type of the left-hand side expression,
> "byte", is not compatible with the type of the
> right-hand side expression, "null" (and vice-versa).
>
>
>     30.             value.length <= i) {
>                     <--->
> *** Error: The type of this expression, "byte", is not
> a valid reference type in this context.
>
>
>     32.             if (value != null) {
>                         <----------->
> *** Error: The type of the left-hand side expression,
> "byte", is not compatible with the type of the
> right-hand side expression, "null" (and vice-versa).
>
>
>     33.                 for(int j=0; j<value.length;
> j++)
>                                        <--->
> *** Error: The type of this expression, "byte", is not
> a valid reference type in this context.
>
>
>     34.                     a[j] = value[j];
>                                    <--->
> *** Error: The type of this expression, "byte", is not
> an array type.
>
>
>     36.             value = a;
>                     <------->
> *** Error: The type of the left-hand side in this
> assignment, "byte", is not compatible with the type of
> the right-hand side expression, "byte[]".
>
>
>     38.         value[i] = value;
>                 <--->
> *** Error: The type of this expression, "byte", is not
> an array type.
>
>
>
>
> ------------------------
>
> Many thanks for any help,
>
>
>
> Nuno Guerreiro
>
>
>
>
> __________________________________________________
> Do You Yahoo!?
> Try FREE Yahoo! Mail - the world's greatest free email!
> http://mail.yahoo.com/



Reply via email to