Hello Joshua,
It is really a bug.
For element names that are reserved Java keywords (case, public, if,
etc.) Axis should prefix the Java field names with underscores.
However, "Case" is not a reserved keyword: the class name should not get
the underscore.
I have never seen this in the BugDB, I think you are the first to find it.
"Where to go from here?": File a bug report:
http://issues.apache.org/jira/secure/CreateIssue!default.jspa
Regards,
Dies
[EMAIL PROTECTED] wrote:
All,
How can I get around this problem? Axis is generating a class file named
"_case" and using the instance name "_case" in my "EligibilityProfile" class.
Is there any way around this or is this really a bug?
Joshua
[EMAIL PROTECTED]
05/05/2006 10:44 PM
Please respond to axis-user
To: axis-user@ws.apache.org
cc:
Subject: Think I found a bug in wsdl2java handling reserved word
"Case" - Where to go from here?
Given the following simplified class:
public class EligibilityProfile {
private mypackager.*Case* _case;
}
The WSDL file get created fine:
<s0:complexType name="EligibilityProfile">
<s0:complexContent>
<s0:extension base="java:BaseDomainObject"
xmlns:java="java:mycompany.webservice.dto">
<s0:sequence>
<s0:element minOccurs="1" name="EligibilityProfileId"
nillable="true" type="xs:long" />
<s0:element minOccurs="1" name="Case" nillable="true"
type="java:Case" />
</s0:sequence>
</s0:extension>
</s0:complexContent>
</s0:complexType>
When wsdl2java get run however, I get the following EligibilityProfile class
created (Note the case of the "_case" class name):
public class EligibilityProfile {
private mypackager.*_case* _case;
}
This class won't even compile. If I refactor "mypackager._class" in the
generated code to "mypackager.Class" it compiles, but I get a problem parsing a
message:
*org.xml.sax.SAXException: Invalid element in
mycompany.webservice.dto.EligibilityProfile - case* *
at
org.apache.axis.encoding.ser.BeanDeserializer.onStartChild(BeanDeserializer.java:258)*
*
at
org.apache.axis.encoding.DeserializationContext.startElement(DeserializationContext.java:1035)*
How should I proceed?
Regards,
Joshua