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 "Tom Trader (JIRA)" <ji...@apache.org> on 2008/09/27 21:19:44 UTC
[jira] Created: (AXIS2-4053) Problem with restricted numeric
elements
Problem with restricted numeric elements
----------------------------------------
Key: AXIS2-4053
URL: https://issues.apache.org/jira/browse/AXIS2-4053
Project: Axis 2.0 (Axis2)
Issue Type: Bug
Components: wsdl
Affects Versions: 1.4
Environment: Windows XP
Reporter: Tom Trader
The code generated by wsdl2java for the adb data binding fails when it involved a XML schema that includes the deserialization of a restricted group that restricts out a numeric type.
In the sample wsdl below the element A (short) is restricted out of the response. When the response is deserialized the factory for parsing the RestrictedGroup is attempting to set the element A if present (which it isn't as it was restricted out) and the else clause (if element not present) for numeric types has the property set it to a minimum value which causes the throwing of a runtime error.
The code at fault is:
if (reader.isStartElement() && new javax.xml.namespace.QName("","A").equals(reader.getName())){
java.lang.String content = reader.getElementText();
object.setA(
org.apache.axis2.databinding.utils.ConverterUtil.convertToShort(content));
reader.next();
} // End of if for expected property start element
else {
object.setA(java.lang.Short.MIN_VALUE); // Code at fault as A property has been restricted out !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
}
WSDL
=====
<?xml version="1.0" encoding="UTF-8"?>
<definitions xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:tns="ns://Sample/SampleService" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap12/" xmlns="http://schemas.xmlsoap.org/wsdl/" xmlns:wsp="http://schemas.xmlsoap.org/ws/2004/09/policy" xmlns:wsaw="http://www.w3.org/2006/05/addressing/wsdl" xmlns:ns="http://schemas.xmlsoap.org/soap/encoding/" name="SampleService" targetNamespace="ns://Sample/SampleService">
<documentation xmlns="http://schemas.xmlsoap.org/wsdl/"/>
<types>
<xsd:schema targetNamespace="ns://Sample/SampleService" xmlns:tns="ns://Sample/SampleService" elementFormDefault="unqualified" attributeFormDefault="unqualified">
<xsd:element name="FullGroup" type="tns:FullGroupType"/>
<xsd:complexType name="FullGroupType">
<xsd:sequence>
<xsd:element name="A" type="xsd:short" minOccurs="0"/>
<xsd:element name="B" type="xsd:string"/>
</xsd:sequence>
</xsd:complexType>
<xsd:element name="RestrictedGroup" type="tns:RestrictedGroupType"/>
<xsd:complexType name="RestrictedGroupType">
<xsd:complexContent>
<xsd:restriction base="tns:FullGroupType">
<xsd:sequence>
<xsd:element name="B" type="xsd:string"/>
</xsd:sequence>
</xsd:restriction>
</xsd:complexContent>
</xsd:complexType>
</xsd:schema>
</types>
<message name="someOperationIn">
<documentation xmlns="http://schemas.xmlsoap.org/wsdl/"/>
<part name="SomeOperationRequestMsg" element="tns:FullGroup"/>
</message>
<message name="someOperationOut">
<documentation xmlns="http://schemas.xmlsoap.org/wsdl/"/>
<part name="SomeOperationResponseMsg" element="tns:RestrictedGroup"/>
</message>
<portType name="SomeHTTPInterface">
<documentation xmlns="http://schemas.xmlsoap.org/wsdl/"/>
<operation name="SomeOperation">
<documentation xmlns="http://schemas.xmlsoap.org/wsdl/"/>
<input message="tns:someOperationIn"/>
<output message="tns:someOperationOut"/>
</operation>
</portType>
<binding name="SomeHTTPBinding" type="tns:SomeHTTPInterface">
<soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>
<operation name="SomeOperation">
<soap:operation soapAction="ns://Sample/SampleService/SomeHTTPInterface/SomeOperationRequest" soapActionRequired="true" style="document"/>
<input>
<soap:body parts="SomeOperationRequestMsg" use="literal"/>
</input>
<output>
<soap:body parts="SomeOperationResponseMsg" use="literal"/>
</output>
</operation>
</binding>
<service name="SampleService">
<port name="SampleServiceSomeHTTPSOAP" binding="tns:SomeHTTPBinding">
<soap:address location="https://localhost/SampleService"/>
</port>
</service>
</definitions>
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.
---------------------------------------------------------------------
To unsubscribe, e-mail: axis-dev-unsubscribe@ws.apache.org
For additional commands, e-mail: axis-dev-help@ws.apache.org