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 2006/09/25 07:36:51 UTC
[jira] Updated: (AXIS2-1138) Generated client code does not handle
attribute namespaces correclty.
[ http://issues.apache.org/jira/browse/AXIS2-1138?page=all ]
Davanum Srinivas updated AXIS2-1138:
------------------------------------
Description:
I am using the WSDL listed below. I generated a client. This client is pointing to a non-java service. The service fails because it cannot find the "count" attribute for the "lookup" element. This is because the Axis 2 client namespace qualified the attribute.
I contacted the service provider and they indicated that Axis 2 should not be namespace qualifying the attribute. The <xsd:schema> element in the WSDL specified elementFormDefault="required" but it does not specify the attributeFormDefault. In the abscense of the attributeFormDefault the default value in "unqualified".
I believe this means that the stub code generated by Axis 2 should not be namespace qualifying the attributes.
Here is the envelope the Axis 2 stub created. Notice the "count" attribute in the lookup element is namespace qualified...
<?xml version='1.0' encoding='UTF-8'?>
<soapenv:Envelope
xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
<soapenv:Header />
<soapenv:Body>
<ns1:lookup xmlns:ns1="http://tempuri.org/" ns1:count="1">
<ns1:upc>1234567890</ns1:upc>
</ns1:lookup>
</soapenv:Body>
</soapenv:Envelope>
Here is the WSDL. Notice that the <xsd:schema> element doesn't specifiy the attributeDefaultFormat which means it defaults to "unqualified"...
<?xml version="1.0" encoding="UTF-8" standalone="no" ?>
<wsdl:definitions xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
name="POC" targetNamespace="http://tempuri.org/"
xmlns:fjs="http://tempuri.org/"
xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<wsdl:types>
<xsd:schema elementFormDefault="qualified"
targetNamespace="http://tempuri.org/"
xmlns:s1="http://tempuri.org/">
<xsd:element name="lookup">
<xsd:complexType>
<xsd:sequence>
<xsd:element maxOccurs="unbounded" minOccurs="0"
name="upc" nillable="true" type="xsd:string" />
</xsd:sequence>
<xsd:attribute name="count" type="xsd:int"
use="required" />
</xsd:complexType>
</xsd:element>
<xsd:element name="GetinfoResponse">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="items" nillable="true">
<xsd:complexType>
<xsd:sequence>
<xsd:element maxOccurs="unbounded"
minOccurs="0" name="item" nillable="true">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="ksn"
nillable="true" type="xsd:int" />
<xsd:element name="upc"
nillable="true" type="xsd:string" />
<xsd:element
name="maintdt" nillable="true" type="xsd:date" />
<xsd:element name="dpt"
nillable="true" type="xsd:int" />
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:sequence>
<xsd:attribute name="count" type="xsd:int"
use="required" />
</xsd:complexType>
</xsd:element>
</xsd:schema>
</wsdl:types>
<wsdl:message name="GetinfoIn">
<wsdl:part element="fjs:lookup" name="parameters" />
</wsdl:message>
<wsdl:message name="GetinfoOut">
<wsdl:part element="fjs:GetinfoResponse" name="parameters" />
</wsdl:message>
<wsdl:portType name="POCPortType">
<wsdl:operation name="Getinfo">
<wsdl:input message="fjs:GetinfoIn" name="lookup" />
<wsdl:output message="fjs:GetinfoOut"
name="GetinfoResponse" />
</wsdl:operation>
</wsdl:portType>
<wsdl:binding name="POCBinding" type="fjs:POCPortType">
<soap:binding transport="http://schemas.xmlsoap.org/soap/http" />
<wsdl:operation name="Getinfo">
<soap:operation soapAction="getinfo" style="document" />
<wsdl:input name="lookup">
<soap:body use="literal" />
</wsdl:input>
<wsdl:output name="GetinfoResponse">
<soap:body use="literal" />
</wsdl:output>
</wsdl:operation>
</wsdl:binding>
<wsdl:service name="POC">
<wsdl:port binding="fjs:POCBinding" name="POCPortType">
<soap:address location="http://localhost:8090/POC/POC" />
</wsdl:port>
</wsdl:service>
</wsdl:definitions>
was:
I am using the WSDL listed below. I generated a client. This client is pointing to a non-java service. The service fails because it cannot find the "count" attribute for the "lookup" element. This is because the Axis 2 client namespace qualified the attribute.
I contacted the service provider and they indicated that Axis 2 should not be namespace qualifying the attribute. The <xsd:schema> element in the WSDL specified elementFormDefault="required" but it does not specify the attributeFormDefault. In the abscense of the attributeFormDefault the default value in "unqualified".
I believe this means that the stub code generated by Axis 2 should not be namespace qualifying the attributes.
Here is the envelope the Axis 2 stub created. Notice the "count" attribute in the lookup element is namespace qualified...
<?xml version='1.0' encoding='UTF-8'?>
<soapenv:Envelope
xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
<soapenv:Header />
<soapenv:Body>
<ns1:lookup xmlns:ns1="http://tempuri.org/" ns1:count="1">
<ns1:upc>1234567890</ns1:upc>
</ns1:lookup>
</soapenv:Body>
</soapenv:Envelope>
Here is the WSDL. Notice that the <xsd:schema> element doesn't specifiy the attributeDefaultFormat which means it defaults to "unqualified"...
<?xml version="1.0" encoding="UTF-8" standalone="no" ?>
<wsdl:definitions xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
name="POC" targetNamespace="http://tempuri.org/"
xmlns:fjs="http://tempuri.org/"
xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<wsdl:types>
<xsd:schema elementFormDefault="qualified"
targetNamespace="http://tempuri.org/"
xmlns:s1="http://tempuri.org/">
<xsd:element name="lookup">
<xsd:complexType>
<xsd:sequence>
<xsd:element maxOccurs="unbounded" minOccurs="0"
name="upc" nillable="true" type="xsd:string" />
</xsd:sequence>
<xsd:attribute name="count" type="xsd:int"
use="required" />
</xsd:complexType>
</xsd:element>
<xsd:element name="GetinfoResponse">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="items" nillable="true">
<xsd:complexType>
<xsd:sequence>
<xsd:element maxOccurs="unbounded"
minOccurs="0" name="item" nillable="true">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="ksn"
nillable="true" type="xsd:int" />
<xsd:element name="upc"
nillable="true" type="xsd:string" />
<xsd:element
name="maintdt" nillable="true" type="xsd:date" />
<xsd:element name="dpt"
nillable="true" type="xsd:int" />
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:sequence>
<xsd:attribute name="count" type="xsd:int"
use="required" />
</xsd:complexType>
</xsd:element>
</xsd:schema>
</wsdl:types>
<wsdl:message name="GetinfoIn">
<wsdl:part element="fjs:lookup" name="parameters" />
</wsdl:message>
<wsdl:message name="GetinfoOut">
<wsdl:part element="fjs:GetinfoResponse" name="parameters" />
</wsdl:message>
<wsdl:portType name="POCPortType">
<wsdl:operation name="Getinfo">
<wsdl:input message="fjs:GetinfoIn" name="lookup" />
<wsdl:output message="fjs:GetinfoOut"
name="GetinfoResponse" />
</wsdl:operation>
</wsdl:portType>
<wsdl:binding name="POCBinding" type="fjs:POCPortType">
<soap:binding transport="http://schemas.xmlsoap.org/soap/http" />
<wsdl:operation name="Getinfo">
<soap:operation soapAction="getinfo" style="document" />
<wsdl:input name="lookup">
<soap:body use="literal" />
</wsdl:input>
<wsdl:output name="GetinfoResponse">
<soap:body use="literal" />
</wsdl:output>
</wsdl:operation>
</wsdl:binding>
<wsdl:service name="POC">
<wsdl:port binding="fjs:POCBinding" name="POCPortType">
<soap:address location="http://localhost:8090/POC/POC" />
</wsdl:port>
</wsdl:service>
</wsdl:definitions>
Priority: Blocker (was: Major)
since elementFormDefault=unqualified is a blocker....
> Generated client code does not handle attribute namespaces correclty.
> ---------------------------------------------------------------------
>
> Key: AXIS2-1138
> URL: http://issues.apache.org/jira/browse/AXIS2-1138
> Project: Apache Axis 2.0 (Axis2)
> Issue Type: Bug
> Components: Tools
> Environment: Java 1.4.2, Tomcat 4, Axis 2 nightly build from 09/05/2006
> Reporter: Todd Doolittle
> Priority: Blocker
>
> I am using the WSDL listed below. I generated a client. This client is pointing to a non-java service. The service fails because it cannot find the "count" attribute for the "lookup" element. This is because the Axis 2 client namespace qualified the attribute.
> I contacted the service provider and they indicated that Axis 2 should not be namespace qualifying the attribute. The <xsd:schema> element in the WSDL specified elementFormDefault="required" but it does not specify the attributeFormDefault. In the abscense of the attributeFormDefault the default value in "unqualified".
> I believe this means that the stub code generated by Axis 2 should not be namespace qualifying the attributes.
> Here is the envelope the Axis 2 stub created. Notice the "count" attribute in the lookup element is namespace qualified...
> <?xml version='1.0' encoding='UTF-8'?>
> <soapenv:Envelope
> xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
> <soapenv:Header />
> <soapenv:Body>
> <ns1:lookup xmlns:ns1="http://tempuri.org/" ns1:count="1">
> <ns1:upc>1234567890</ns1:upc>
> </ns1:lookup>
> </soapenv:Body>
> </soapenv:Envelope>
> Here is the WSDL. Notice that the <xsd:schema> element doesn't specifiy the attributeDefaultFormat which means it defaults to "unqualified"...
> <?xml version="1.0" encoding="UTF-8" standalone="no" ?>
> <wsdl:definitions xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
> name="POC" targetNamespace="http://tempuri.org/"
> xmlns:fjs="http://tempuri.org/"
> xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
> xmlns:xsd="http://www.w3.org/2001/XMLSchema">
> <wsdl:types>
> <xsd:schema elementFormDefault="qualified"
> targetNamespace="http://tempuri.org/"
> xmlns:s1="http://tempuri.org/">
> <xsd:element name="lookup">
> <xsd:complexType>
> <xsd:sequence>
> <xsd:element maxOccurs="unbounded" minOccurs="0"
> name="upc" nillable="true" type="xsd:string" />
> </xsd:sequence>
> <xsd:attribute name="count" type="xsd:int"
> use="required" />
> </xsd:complexType>
> </xsd:element>
> <xsd:element name="GetinfoResponse">
> <xsd:complexType>
> <xsd:sequence>
> <xsd:element name="items" nillable="true">
> <xsd:complexType>
> <xsd:sequence>
> <xsd:element maxOccurs="unbounded"
> minOccurs="0" name="item" nillable="true">
> <xsd:complexType>
> <xsd:sequence>
> <xsd:element name="ksn"
> nillable="true" type="xsd:int" />
> <xsd:element name="upc"
> nillable="true" type="xsd:string" />
> <xsd:element
> name="maintdt" nillable="true" type="xsd:date" />
> <xsd:element name="dpt"
> nillable="true" type="xsd:int" />
> </xsd:sequence>
> </xsd:complexType>
> </xsd:element>
> </xsd:sequence>
> </xsd:complexType>
> </xsd:element>
> </xsd:sequence>
> <xsd:attribute name="count" type="xsd:int"
> use="required" />
> </xsd:complexType>
> </xsd:element>
> </xsd:schema>
> </wsdl:types>
> <wsdl:message name="GetinfoIn">
> <wsdl:part element="fjs:lookup" name="parameters" />
> </wsdl:message>
> <wsdl:message name="GetinfoOut">
> <wsdl:part element="fjs:GetinfoResponse" name="parameters" />
> </wsdl:message>
> <wsdl:portType name="POCPortType">
> <wsdl:operation name="Getinfo">
> <wsdl:input message="fjs:GetinfoIn" name="lookup" />
> <wsdl:output message="fjs:GetinfoOut"
> name="GetinfoResponse" />
> </wsdl:operation>
> </wsdl:portType>
> <wsdl:binding name="POCBinding" type="fjs:POCPortType">
> <soap:binding transport="http://schemas.xmlsoap.org/soap/http" />
> <wsdl:operation name="Getinfo">
> <soap:operation soapAction="getinfo" style="document" />
> <wsdl:input name="lookup">
> <soap:body use="literal" />
> </wsdl:input>
> <wsdl:output name="GetinfoResponse">
> <soap:body use="literal" />
> </wsdl:output>
> </wsdl:operation>
> </wsdl:binding>
> <wsdl:service name="POC">
> <wsdl:port binding="fjs:POCBinding" name="POCPortType">
> <soap:address location="http://localhost:8090/POC/POC" />
> </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
---------------------------------------------------------------------
To unsubscribe, e-mail: axis-dev-unsubscribe@ws.apache.org
For additional commands, e-mail: axis-dev-help@ws.apache.org