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 "Samisa Abeysinghe (JIRA)" <ji...@apache.org> on 2010/12/19 12:43:12 UTC
[jira] Updated: (AXIS2-4053) Problem with restricted numeric
elements
[ https://issues.apache.org/jira/browse/AXIS2-4053?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Samisa Abeysinghe updated AXIS2-4053:
-------------------------------------
Component/s: (was: wsdl)
codegen
> Problem with restricted numeric elements
> ----------------------------------------
>
> Key: AXIS2-4053
> URL: https://issues.apache.org/jira/browse/AXIS2-4053
> Project: Axis2
> Issue Type: Bug
> Components: codegen
> 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: java-dev-unsubscribe@axis.apache.org
For additional commands, e-mail: java-dev-help@axis.apache.org