axis-java-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Daniel Kador (JIRA)" <axis-...@ws.apache.org>
Subject [jira] Commented: (AXIS-2096) Custom simpleType as attribute of an element causes problems when displaying deployed service's WSDL
Date Thu, 30 Jun 2005 20:20:57 GMT
    [ http://issues.apache.org/jira/browse/AXIS-2096?page=comments#action_12314813 ] 

Daniel Kador commented on AXIS-2096:
------------------------------------

I have a little additional input.  I think the potential issue lies in the WSDL2Java code.
 I've also discovered that it's more restrictive than I initially thought - the custom simpleType
NEEDS to have an enumeration.  Without an enum, WSDL2Java doesn't emit a class for that simpleType,
and Axis gets confused when trying to view the deployed service's WSDL.  I think an appropriate
bugfix would be to have a class always generated for simpleTypes, even if they don't have
enumerated values.  Another option would be to fix the validating code so that when the WSDL
is generated by the webservice, it knows that the custom simpleType is, in fact, a simpleType.
 It doesn't work if a custom class has not been emitted.

> Custom simpleType as attribute of an element causes problems when displaying deployed
service's WSDL
> ----------------------------------------------------------------------------------------------------
>
>          Key: AXIS-2096
>          URL: http://issues.apache.org/jira/browse/AXIS-2096
>      Project: Apache Axis
>         Type: Bug
>   Components: Serialization/Deserialization
>     Versions: 1.2.1
>  Environment: WinXP, Tomcat 5.5.9, jdk1.5.0_03
>     Reporter: Daniel Kador

>
> If you create a WSDL similar to the one below in wrapped/literal style, you will not
be able to create a complexType whose attribute is of a custom simpleType.  In the example
below, the following error is listed when you try to view the deployed service's WSDL through
the browser interface:
> AXIS error
> Sorry, something seems to have gone wrong... here are the details:
> Fault - Bean attribute testAttribute is of type org.apache.axis.types.NormalizedString,
which is not a simple type
> AxisFault
>  faultCode: {http://schemas.xmlsoap.org/soap/envelope/}Server.generalException
>  faultSubcode: 
>  faultString: Bean attribute testAttribute is of type org.apache.axis.types.NormalizedString,
which is not a simple type
>  faultActor: 
>  faultNode: 
>  faultDetail: 
> 	{http://xml.apache.org/axis/}hostname:ORLIWG2H5Y61
> I can fix the above error by changing the attribute type from "y:testAttribute" to "xs:normalizedString".
 Is Axis designed to behave this way?  It's my understanding that XML allows for custom simpleTypes
to be defined and then used as attributes, and the schemas I work with use this feature a
good deal.  They validate with no problems in XMLSpy.  The WSDL I use in this example is posted
below.  
> <?xml version="1.0" encoding="utf-8"?>
> <wsdl:definitions xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" 											xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
> 			xmlns:http="http://schemas.xmlsoap.org/wsdl/http/" 
> 			xmlns:xs="http://www.w3.org/2001/XMLSchema" 
> 			xmlns:y="http://test.wsdl" 
> 			xmlns:types="http://test.wsdl/types"
> 			targetNamespace="http://test.wsdl">
> 	<wsdl:types>
> 		<xs:schema>
> 			<xs:complexType name="testType">
> 				<xs:sequence>
> 					<xs:element name="testElement" type="xs:normalizedString"/>
> 				</xs:sequence>
> 				<xs:attribute name="testAttribute" type="y:testAttribute"/>
> 			</xs:complexType>
> 			<xs:simpleType name="testAttribute">
> 				<xs:restriction base="xs:normalizedString"/>
> 			</xs:simpleType>
> 			<xs:element name="testAction">
> 				<xs:complexType>
> 					<xs:sequence>
> 						<xs:element name="testParam" type="y:testType"/>
> 					</xs:sequence>
> 				</xs:complexType>
> 			</xs:element>
> 			<xs:element name="testActionResp">
> 				<xs:complexType>
> 					<xs:sequence>
> 						<xs:element name="testResp" type="xs:string"/>
> 					</xs:sequence>
> 				</xs:complexType>
> 			</xs:element>
> 		</xs:schema>
> 	</wsdl:types>
> 	<wsdl:message name="testActionRequest">
> 		<wsdl:part name="parameters" element="y:testAction"/>
> 	</wsdl:message>
> 	<wsdl:message name="testActionResponse">
> 		<wsdl:part name="parameters" element="y:testActionResp"/>
> 	</wsdl:message>
> 	<wsdl:portType name="testPortType">
> 		<wsdl:operation name="testAction">
> 			<wsdl:input message="y:testActionRequest"/>
> 			<wsdl:output message="y:testActionResponse"/>
> 		</wsdl:operation>
> 	</wsdl:portType>
> 	<wsdl:binding name="testSoapBinding" type="y:testPortType">
> 		<soap:binding transport="http://schemas.xmlsoap.org/soap/http" style="document"/>
> 		<wsdl:operation name="testAction">
> 			<wsdl:input>
> 				<soap:body use="literal"/>
> 			</wsdl:input>
> 			<wsdl:output>
> 				<soap:body use="literal"/>
> 			</wsdl:output>
> 		</wsdl:operation>
> 	</wsdl:binding>
> 	<wsdl:service name="testService">
> 		<wsdl:port name="testPort" binding="y:testSoapBinding">
> 			<soap:address location="http://localhost:8080/axis/services/testPort"/>
> 		</wsdl:port>
> 	</wsdl:service>
> </wsdl:definitions>

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
   http://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see:
   http://www.atlassian.com/software/jira


Mime
View raw message