Details
-
Bug
-
Status: Open
-
Major
-
Resolution: Unresolved
-
1.4
-
None
-
None
-
Windows XP, Java 1.4.2_05, Axis 1.4
Description
Hi, we've found something strange using wsdl2java in AXIS 1.4 which was not happening on 1.3:
Given next xsd example:
<xs:simpleType name="CommonErrorCodeEnumMPE">
<xs:restriction base="xs:string">
<xs:enumeration value="E-UNKNOWN"/>
<xs:enumeration value="E-COM-UNKNOWN"/>
<xs:enumeration value="E-BADREQUEST"/>
<xs:enumeration value="E-NOSERVICE"/>
<xs:enumeration value="E-BADMATCH"/>
<xs:enumeration value="E-NOMATCH"/>
<xs:enumeration value="E-NOPREVTRX"/>
<xs:enumeration value="E-TIMEOUT"/>
<xs:enumeration value="E-NOMPI"/>
<xs:enumeration value="E-MBLOCK"/>
<xs:enumeration value="E-MSIMBLOCK"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="SendRefErrorCodeEnum">
<xs:union memberTypes="CommonErrorCodeEnumMPE">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:enumeration value="E-SEN-MERNOAVAI"/>
<xs:enumeration value="E-SEN-POSNOAVAI"/>
<xs:enumeration value="E-SEN-INVALREF"/>
<xs:enumeration value="E-SEN-INVAADDATA"/>
</xs:restriction>
</xs:simpleType>
</xs:union>
</xs:simpleType>
wsdl2Java generates next clases:
- CommonErrorCodeEnumMPE.java:...it's OK
- SendRefErrorCodeEnum.java:.............Compilation errors: The class SendRefErrorCodeEnum has a "value" String attribute but its accessors have a CommonErrorCodeEnumMPE type
- SendRefErrorCodeEnumNull.java: .....What's the meaning of this?
The source of these classes is:
/**
- CommonErrorCodeEnumMPE.java
* - This file was auto-generated from WSDL
- by the Apache Axis 1.4 Apr 22, 2006 (06:55:48 PDT) WSDL2Java emitter.
*/
package es.mobipay.xsd;
public class CommonErrorCodeEnumMPE implements java.io.Serializable {
private java.lang.String value;
private static java.util.HashMap table = new java.util.HashMap();
// Constructor
protected CommonErrorCodeEnumMPE(java.lang.String value)
public static final java.lang.String _value1 = "E-UNKNOWN";
public static final java.lang.String _value2 = "E-COM-UNKNOWN";
public static final java.lang.String _value3 = "E-BADREQUEST";
public static final java.lang.String _value4 = "E-NOSERVICE";
public static final java.lang.String _value5 = "E-BADMATCH";
public static final java.lang.String _value6 = "E-NOMATCH";
public static final java.lang.String _value7 = "E-NOPREVTRX";
public static final java.lang.String _value8 = "E-TIMEOUT";
public static final java.lang.String _value9 = "E-NOMPI";
public static final java.lang.String _value10 = "E-MBLOCK";
public static final java.lang.String _value11 = "E-MSIMBLOCK";
public static final CommonErrorCodeEnumMPE value1 = new CommonErrorCodeEnumMPE(_value1);
public static final CommonErrorCodeEnumMPE value2 = new CommonErrorCodeEnumMPE(_value2);
public static final CommonErrorCodeEnumMPE value3 = new CommonErrorCodeEnumMPE(_value3);
public static final CommonErrorCodeEnumMPE value4 = new CommonErrorCodeEnumMPE(_value4);
public static final CommonErrorCodeEnumMPE value5 = new CommonErrorCodeEnumMPE(_value5);
public static final CommonErrorCodeEnumMPE value6 = new CommonErrorCodeEnumMPE(_value6);
public static final CommonErrorCodeEnumMPE value7 = new CommonErrorCodeEnumMPE(_value7);
public static final CommonErrorCodeEnumMPE value8 = new CommonErrorCodeEnumMPE(_value8);
public static final CommonErrorCodeEnumMPE value9 = new CommonErrorCodeEnumMPE(_value9);
public static final CommonErrorCodeEnumMPE value10 = new CommonErrorCodeEnumMPE(_value10);
public static final CommonErrorCodeEnumMPE value11 = new CommonErrorCodeEnumMPE(_value11);
public java.lang.String getValue() { return _value_;}
public static CommonErrorCodeEnumMPE fromValue(java.lang.String value)
throws java.lang.IllegalArgumentException { CommonErrorCodeEnumMPE enumeration = (CommonErrorCodeEnumMPE) _table_.get(value); if (enumeration==null) throw new java.lang.IllegalArgumentException(); return enumeration; }
public static CommonErrorCodeEnumMPE fromString(java.lang.String value)
throws java.lang.IllegalArgumentException { return fromValue(value); }
public boolean equals(java.lang.Object obj) {return (obj == this);}
public int hashCode() { return toString().hashCode();}
public java.lang.String toString() { return _value_;}
public java.lang.Object readResolve() throws java.io.ObjectStreamException { return fromValue(_value_);}
public static org.apache.axis.encoding.Serializer getSerializer(
java.lang.String mechType,
java.lang.Class _javaType,
javax.xml.namespace.QName _xmlType) { return new org.apache.axis.encoding.ser.EnumSerializer( _javaType, _xmlType); }
public static org.apache.axis.encoding.Deserializer getDeserializer(
java.lang.String mechType,
java.lang.Class _javaType,
javax.xml.namespace.QName _xmlType) { return new org.apache.axis.encoding.ser.EnumDeserializer( _javaType, _xmlType); }
// Type metadata
private static org.apache.axis.description.TypeDesc typeDesc =
new org.apache.axis.description.TypeDesc(CommonErrorCodeEnumMPE.class);
static { typeDesc.setXmlType(new javax.xml.namespace.QName("urn:xsd.mobipay.es", "CommonErrorCodeEnumMPE")); }
/**
* Return type metadata object
*/
public static org.apache.axis.description.TypeDesc getTypeDesc() { return typeDesc; }
}
/**
* SendRefErrorCodeEnum.java
*
* This file was auto-generated from WSDL
* by the Apache Axis 1.4 Apr 22, 2006 (06:55:48 PDT) WSDL2Java emitter.
*/
package es.mobipay.xsd;
public class SendRefErrorCodeEnum extends es.mobipay.xsd.CommonErrorCodeEnumMPE implements java.io.Serializable {
private es.mobipay.xsd.CommonErrorCodeEnumMPE value;
// Simple Types must have a String constructor
public SendRefErrorCodeEnum(java.lang.String _value) { super(_value); }
/**
* Gets the value value for this SendRefErrorCodeEnum.
*
* @return value
*/
public es.mobipay.xsd.CommonErrorCodeEnumMPE getValue() { return value; }
/**
* Sets the value value for this SendRefErrorCodeEnum.
*
* @param value
*/
public void setValue(es.mobipay.xsd.CommonErrorCodeEnumMPE value) { this.value = value; }
private java.lang.Object __equalsCalc = null;
public synchronized boolean equals(java.lang.Object obj) {
if (!(obj instanceof SendRefErrorCodeEnum)) return false;
SendRefErrorCodeEnum other = (SendRefErrorCodeEnum) obj;
if (obj == null) return false;
if (this == obj) return true;
if (__equalsCalc != null) { return (__equalsCalc == obj); }
__equalsCalc = obj;
boolean _equals;
_equals = super.equals(obj) &&
((this.value==null && other.getValue()==null) ||
(this.value!=null &&
this.value.equals(other.getValue())));
__equalsCalc = null;
return _equals;
}
private boolean __hashCodeCalc = false;
public synchronized int hashCode() {
if (__hashCodeCalc) { return 0; }
__hashCodeCalc = true;
int _hashCode = 1;
if (getValue() != null) { _hashCode += getValue().hashCode(); }
__hashCodeCalc = false;
return _hashCode;
}
// Type metadata
private static org.apache.axis.description.TypeDesc typeDesc =
new org.apache.axis.description.TypeDesc(SendRefErrorCodeEnum.class, true);
static { typeDesc.setXmlType(new javax.xml.namespace.QName("urn:xsd.mobipay.es", "SendRefErrorCodeEnum")); org.apache.axis.description.ElementDesc elemField = new org.apache.axis.description.ElementDesc(); elemField.setFieldName("value"); elemField.setXmlName(new javax.xml.namespace.QName("", "value")); elemField.setXmlType(new javax.xml.namespace.QName("urn:xsd.mobipay.es", "CommonErrorCodeEnumMPE")); elemField.setNillable(false); typeDesc.addFieldDesc(elemField); }
/**
* Return type metadata object
*/
public static org.apache.axis.description.TypeDesc getTypeDesc() { return typeDesc; }
/**
* Get Custom Serializer
*/
public static org.apache.axis.encoding.Serializer getSerializer(
java.lang.String mechType,
java.lang.Class _javaType,
javax.xml.namespace.QName _xmlType) { return new org.apache.axis.encoding.ser.SimpleSerializer( _javaType, _xmlType, typeDesc); }
/**
* Get Custom Deserializer
*/
public static org.apache.axis.encoding.Deserializer getDeserializer(
java.lang.String mechType,
java.lang.Class _javaType,
javax.xml.namespace.QName _xmlType) { return new org.apache.axis.encoding.ser.SimpleDeserializer( _javaType, _xmlType, typeDesc); }
}
/**
* SendRefErrorCodeEnumNull.java
*
* This file was auto-generated from WSDL
* by the Apache Axis 1.4 Apr 22, 2006 (06:55:48 PDT) WSDL2Java emitter.
*/
package es.mobipay.xsd;
public class SendRefErrorCodeEnumNull implements java.io.Serializable {
private java.lang.String value;
private static java.util.HashMap table = new java.util.HashMap();
// Constructor
protected SendRefErrorCodeEnumNull(java.lang.String value) { _value_ = value; _table_.put(_value_,this); }
public static final java.lang.String _value1 = "E-SEN-MERNOAVAI";
public static final java.lang.String _value2 = "E-SEN-POSNOAVAI";
public static final java.lang.String _value3 = "E-SEN-INVALREF";
public static final java.lang.String _value4 = "E-SEN-INVAADDATA";
public static final SendRefErrorCodeEnumNull value1 = new SendRefErrorCodeEnumNull(_value1);
public static final SendRefErrorCodeEnumNull value2 = new SendRefErrorCodeEnumNull(_value2);
public static final SendRefErrorCodeEnumNull value3 = new SendRefErrorCodeEnumNull(_value3);
public static final SendRefErrorCodeEnumNull value4 = new SendRefErrorCodeEnumNull(_value4);
public java.lang.String getValue()
public static SendRefErrorCodeEnumNull fromValue(java.lang.String value)
throws java.lang.IllegalArgumentException { SendRefErrorCodeEnumNull enumeration = (SendRefErrorCodeEnumNull) _table_.get(value); if (enumeration==null) throw new java.lang.IllegalArgumentException(); return enumeration; }
public static SendRefErrorCodeEnumNull fromString(java.lang.String value)
throws java.lang.IllegalArgumentException { return fromValue(value); }
public boolean equals(java.lang.Object obj) {return (obj == this);}
public int hashCode() { return toString().hashCode();}
public java.lang.String toString() { return _value_;}
public java.lang.Object readResolve() throws java.io.ObjectStreamException
{ return fromValue(_value_);} public static org.apache.axis.encoding.Serializer getSerializer(
java.lang.String mechType,
java.lang.Class _javaType,
javax.xml.namespace.QName _xmlType)
public static org.apache.axis.encoding.Deserializer getDeserializer(
java.lang.String mechType,
java.lang.Class _javaType,
javax.xml.namespace.QName _xmlType)
// Type metadata
private static org.apache.axis.description.TypeDesc typeDesc =
new org.apache.axis.description.TypeDesc(SendRefErrorCodeEnumNull.class);
static
{ typeDesc.setXmlType(new javax.xml.namespace.QName("urn:xsd.mobipay.es", "SendRefErrorCodeEnum>null")); }/**
- Return type metadata object
*/
public static org.apache.axis.description.TypeDesc getTypeDesc() { return typeDesc; }
}
Apparently, this same xsd creates other (but right) classes if generated with AXIS 1.3 wsdl2java tool, so it seems to be somethig specific of 1.4 version