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 "Davanum Srinivas (JIRA)" <ji...@apache.org> on 2008/04/10 12:18:06 UTC
[jira] Commented: (AXIS2-3724) WSDL complex type elements do not
comply to JAXB Java bean
[ https://issues.apache.org/jira/browse/AXIS2-3724?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12587569#action_12587569 ]
Davanum Srinivas commented on AXIS2-3724:
-----------------------------------------
You really need to use the JAXWS 2.1 support in latest nightly.
-- dims
> WSDL complex type elements do not comply to JAXB Java bean
> ----------------------------------------------------------
>
> Key: AXIS2-3724
> URL: https://issues.apache.org/jira/browse/AXIS2-3724
> Project: Axis 2.0 (Axis2)
> Issue Type: Bug
> Components: wsdl
> Affects Versions: nightly
> Environment: Win XP Pro, JDK6_04, Tomcat 5.5.26, JAXB 2.1.6
> Reporter: Glen Verran
> Fix For: nightly
>
>
> I created a web service which contains one method. It has one parameter of type RetrieveConfigurationDataRequest and returns RetrieveConfigurationDataResponse.
> Focusing on RetrieveConfigurationDataRequest , the java bean was generated by JAXB 2.1.6. Here are the variables from the java bean below
> @XmlElement(required = true)
> protected String echoData;
> @XmlElement(required = true)
> protected String identifierType;
> @XmlElement(required = true)
> protected String identifier;
> @XmlElement(required = true)
> protected String revision;
> protected String vintage;
> protected Long dataBlockSize;
> protected Long dataBlockPosition;
> @XmlElement(required = true)
> protected DataEncodingType dataEncodingType;
> The order of their "getters" and "setters" appear in the same order as the variables.
> The WSDL that gets generated contains this complexType which lools like this.
> <xs:complexType name="RetrieveConfigurationDataRequest">
> <xs:complexContent>
> <xs:extension base="ns0:JaxbInternalMsg">
> <xs:sequence>
> <xs:element minOccurs="0" name="dataBlockPosition" nillable="true" type="xs:long"/>
> <xs:element minOccurs="0" name="dataBlockSize" nillable="true" type="xs:long"/>
> <xs:element minOccurs="0" name="dataEncodingType" nillable="true" type="ax21:DataEncodingType"/>
> <xs:element minOccurs="0" name="echoData" nillable="true" type="xs:string"/>
> <xs:element minOccurs="0" name="identifier" nillable="true" type="xs:string"/>
> <xs:element minOccurs="0" name="identifierType" nillable="true" type="xs:string"/>
> <xs:element minOccurs="0" name="revision" nillable="true" type="xs:string"/>
> <xs:element minOccurs="0" name="vintage" nillable="true" type="xs:string"/>
> </xs:sequence>
> </xs:extension>
> </xs:complexContent>
> </xs:complexType>
> I find that the WSDL does not comply with the JAXB 2.1.6 generated java bean in the following ways:
> 1) The elements are alphabetically sorted and do not appear in the same order as in the java bean.
> 2) Look at the "identifier" element and you'll see that it has a minOccurs of 0. This is a required field by the java bean and so should not have a minOccurs modifier in there.
> 3) I also noticed that all the fields are set to nullable. I don't know what the criteria is for this, but I assume it is because these are referring to java objects and not primitives. I also think that if an object is required, that it should not be nullable.
> At the end of the day, the WSDL must take JAXB and its annotations into account and reflect the web service and its java beans 100% and it is not doing that.
> I know there is a workaround by inserting a modified wsdl into the aar file, but I don't want to have to do that since AXIS2 was designed to generate the WSDL itself when issuing ?WSDL in a browser.
--
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