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 "Willy ANTOINE (JIRA)" <ji...@apache.org> on 2007/09/13 17:30:32 UTC
[jira] Created: (AXIS2-3201) REST minOccurs wsdl optional element
REST minOccurs wsdl optional element
------------------------------------
Key: AXIS2-3201
URL: https://issues.apache.org/jira/browse/AXIS2-3201
Project: Axis 2.0 (Axis2)
Issue Type: Bug
Components: kernel
Affects Versions: 1.3
Environment: JDK 1.4.1 tomcat 4.1.34 axis2-1.3
Reporter: Willy ANTOINE
Priority: Critical
It seem's that REST support in axis doesn't honor minOccurs="0" in WSDL file
I have the foloowing wsdl file in my <myservice>/META-INF/:
<?xml version="1.0" encoding="UTF-8"?>
<wsdl:definitions xmlns:http="http://schemas.xmlsoap.org/wsdl/http/"
xmlns:mime="http://schemas.xmlsoap.org/wsdl/mime/"
xmlns:tns="urn:interop" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
xmlns:xsd="http://www.w3.org/2001/XMLSchema" name="http-binding"
targetNamespace="urn:interop"
xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/">
<wsdl:types>
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"
targetNamespace="urn:interop">
<xsd:element name="testOperationResponse">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="testOperationReturn"
type="tns:TestOperationReturn" />
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:complexType name="TestOperationReturn">
<xsd:sequence>
<xsd:element name="param1" type="xsd:string">
</xsd:element>
<xsd:element name="param2" type="xsd:int">
</xsd:element>
<xsd:element name="param3" type="xsd:date" maxOccurs="1" minOccurs="0" >
</xsd:element>
</xsd:sequence>
</xsd:complexType>
<xsd:element name="testOperation"
type="tns:TestOperationReturn">
</xsd:element>
</xsd:schema>
</wsdl:types>
<wsdl:message name="testOperationRequest">
<wsdl:part name="testOperationRequest"
element="tns:testOperation" />
</wsdl:message>
<wsdl:message name="testOperationResponse">
<wsdl:part name="testOperationResponse"
element="tns:testOperationResponse" />
</wsdl:message>
<wsdl:portType name="interop">
<wsdl:operation name="testOperation">
<wsdl:input message="tns:testOperationRequest" />
<wsdl:output message="tns:testOperationResponse" />
</wsdl:operation>
</wsdl:portType>
<wsdl:binding name="interopSoapBinding" type="tns:interop">
<soap:binding style="document"
transport="http://schemas.xmlsoap.org/soap/http" />
<wsdl:operation name="testOperation">
<soap:operation soapAction="urn:interop/testOperation" />
<wsdl:input>
<soap:body use="literal" />
</wsdl:input>
<wsdl:output>
<soap:body use="literal" />
</wsdl:output>
</wsdl:operation>
</wsdl:binding>
<wsdl:binding name="HttpBinding" type="tns:interop">
<http:binding verb="GET" />
<wsdl:operation name="testOperation">
<http:operation location="/testOperation" />
<wsdl:input>
<http:urlEncoded />
</wsdl:input>
<wsdl:output>
<mime:content type="text/xml" />
</wsdl:output>
</wsdl:operation>
</wsdl:binding>
<wsdl:service name="interopService">
<wsdl:port name="interopSoap"
binding="tns:interopSoapBinding">
<soap:address location="http://www.example.org/"></soap:address>
</wsdl:port>
<wsdl:port name="HttpPort" binding="tns:HttpBinding">
<http:address location="http://www.example.org/" />
</wsdl:port>
</wsdl:service>
</wsdl:definitions>
>From this wsdl with codegen, i've created the server implementation.
In my axis2.xml REST supoprt is enable.
When i call http://localhost:8080/webapp/services/interopService/testOperation?param1=toto¶m2=2 i have an error claiming that the 3rd parameter is mandatory.
if i change
<xsd:element name="param3" type="xsd:date" maxOccurs="1" minOccurs="0" > with
<xsd:element name="param3" type="xsd:date" maxOccurs="1" minOccurs="0" nillable="true">
then this is working and also http://localhost:8080/webapp/services/interopService/testOperation?param1=toto¶m2=2¶m3= is working
When i debug, i see that when transforming the request from rest to soap message, the associated XML Schema returns minOccurs="1", perhaps this is a bug in xml schema.
Best regards
Willy
--
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
[jira] Updated: (AXIS2-3201) REST minOccurs wsdl optional element
Posted by "Deepal Jayasinghe (JIRA)" <ji...@apache.org>.
[ https://issues.apache.org/jira/browse/AXIS2-3201?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Deepal Jayasinghe updated AXIS2-3201:
-------------------------------------
Assignee: Deepal Jayasinghe
> REST minOccurs wsdl optional element
> ------------------------------------
>
> Key: AXIS2-3201
> URL: https://issues.apache.org/jira/browse/AXIS2-3201
> Project: Axis 2.0 (Axis2)
> Issue Type: Bug
> Components: kernel
> Affects Versions: 1.3
> Environment: JDK 1.4.1 tomcat 4.1.34 axis2-1.3
> Reporter: Willy ANTOINE
> Assignee: Deepal Jayasinghe
> Priority: Critical
>
> It seem's that REST support in axis doesn't honor minOccurs="0" in WSDL file
> I have the foloowing wsdl file in my <myservice>/META-INF/:
> <?xml version="1.0" encoding="UTF-8"?>
> <wsdl:definitions xmlns:http="http://schemas.xmlsoap.org/wsdl/http/"
> xmlns:mime="http://schemas.xmlsoap.org/wsdl/mime/"
> xmlns:tns="urn:interop" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
> xmlns:xsd="http://www.w3.org/2001/XMLSchema" name="http-binding"
> targetNamespace="urn:interop"
> xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/">
> <wsdl:types>
> <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"
> targetNamespace="urn:interop">
> <xsd:element name="testOperationResponse">
> <xsd:complexType>
> <xsd:sequence>
> <xsd:element name="testOperationReturn"
> type="tns:TestOperationReturn" />
> </xsd:sequence>
> </xsd:complexType>
> </xsd:element>
> <xsd:complexType name="TestOperationReturn">
> <xsd:sequence>
> <xsd:element name="param1" type="xsd:string">
> </xsd:element>
> <xsd:element name="param2" type="xsd:int">
> </xsd:element>
> <xsd:element name="param3" type="xsd:date" maxOccurs="1" minOccurs="0" >
> </xsd:element>
> </xsd:sequence>
> </xsd:complexType>
> <xsd:element name="testOperation"
> type="tns:TestOperationReturn">
> </xsd:element>
> </xsd:schema>
> </wsdl:types>
> <wsdl:message name="testOperationRequest">
> <wsdl:part name="testOperationRequest"
> element="tns:testOperation" />
>
> </wsdl:message>
> <wsdl:message name="testOperationResponse">
> <wsdl:part name="testOperationResponse"
> element="tns:testOperationResponse" />
> </wsdl:message>
> <wsdl:portType name="interop">
> <wsdl:operation name="testOperation">
> <wsdl:input message="tns:testOperationRequest" />
> <wsdl:output message="tns:testOperationResponse" />
> </wsdl:operation>
> </wsdl:portType>
> <wsdl:binding name="interopSoapBinding" type="tns:interop">
> <soap:binding style="document"
> transport="http://schemas.xmlsoap.org/soap/http" />
> <wsdl:operation name="testOperation">
> <soap:operation soapAction="urn:interop/testOperation" />
> <wsdl:input>
> <soap:body use="literal" />
> </wsdl:input>
> <wsdl:output>
> <soap:body use="literal" />
> </wsdl:output>
> </wsdl:operation>
> </wsdl:binding>
> <wsdl:binding name="HttpBinding" type="tns:interop">
> <http:binding verb="GET" />
> <wsdl:operation name="testOperation">
> <http:operation location="/testOperation" />
> <wsdl:input>
> <http:urlEncoded />
> </wsdl:input>
> <wsdl:output>
> <mime:content type="text/xml" />
> </wsdl:output>
> </wsdl:operation>
> </wsdl:binding>
> <wsdl:service name="interopService">
> <wsdl:port name="interopSoap"
> binding="tns:interopSoapBinding">
> <soap:address location="http://www.example.org/"></soap:address>
> </wsdl:port>
> <wsdl:port name="HttpPort" binding="tns:HttpBinding">
> <http:address location="http://www.example.org/" />
> </wsdl:port>
> </wsdl:service>
> </wsdl:definitions>
> From this wsdl with codegen, i've created the server implementation.
> In my axis2.xml REST supoprt is enable.
> When i call http://localhost:8080/webapp/services/interopService/testOperation?param1=toto¶m2=2 i have an error claiming that the 3rd parameter is mandatory.
> if i change
> <xsd:element name="param3" type="xsd:date" maxOccurs="1" minOccurs="0" > with
> <xsd:element name="param3" type="xsd:date" maxOccurs="1" minOccurs="0" nillable="true">
> then this is working and also http://localhost:8080/webapp/services/interopService/testOperation?param1=toto¶m2=2¶m3= is working
> When i debug, i see that when transforming the request from rest to soap message, the associated XML Schema returns minOccurs="1", perhaps this is a bug in xml schema.
> Best regards
> Willy
--
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