axis-java-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Chris Haddad" <hadd...@cobia.net>
Subject RE: WSDL2Java from .NET generated WSDL
Date Sun, 04 Aug 2002 14:19:35 GMT
Axis - 

I've submitted a patch (attached to bug 9966) that adds support for the
following unsigned types:

xsd:unsignedLong
xsd:unsignedInt 
xsd:unsignedShort
xsd:unsignedByte


/Chris

-----Original Message-----
From: Tom Jordahl [mailto:tomj@macromedia.com] 
Sent: Thursday, August 01, 2002 12:04 PM
To: 'axis-user@xml.apache.org'
Subject: RE: WSDL2Java from .NET generated WSDL


You are correct - Axis does not currently support the unsigned XML
Schema types.  There are no corresponding Java types to use to represent
them.

We are thinking about creating Axis specific objects for these Schema
types (i.e. org.apache.axis.types.UnsignedInt) that will enforce their
semantics.  This is still under discussion.  It would force users to use
Axis specific types, which may not be a good thing.

The problem with using the native types (xsd:unsignedInt -> Java "int")
is that these will not be reflected back in generated WSDL, and there
would be no validation of the values.  For instance you could call an
operation with a -3 int value where the WSDL said it took an
unsignedInt.  This may not be a big problem if the server did the
validation.

There are lots of issues here. :-|

--
Tom Jordahl
Macromedia


-----Original Message-----
From: Anne Marie Hartvigsen [mailto:amhartvi@stud.hia.no]
Sent: Thursday, August 01, 2002 4:17 AM
To: axis-user@xml.apache.org
Subject: WSDL2Java from .NET generated WSDL


Hei,

I am just starting to explore the WSDL2Java tool, seeing if I can use
other Web 
services. I tried to use a simple .NET service that I had developed
(actually 
tow small services, a .NET temperatureconverter sample and a simple calc

service, and it is not available outside of my network), copied the WSDL
url 
and did

java org.apache.axis.wsdl.WSDL2Java
http://cramer/WebService4/Service1.asmx?WSDL

and got

java.io.IOException: The XML Schema type 'unsignedShort' is not
currently suppor
ted.
        at
org.apache.axis.wsdl.symbolTable.SymbolTable.checkForUndefined(Symbol
Table.java:456)
        at
org.apache.axis.wsdl.symbolTable.SymbolTable.add(SymbolTable.java:377
)
        at
org.apache.axis.wsdl.symbolTable.SymbolTable.populate(SymbolTable.jav
a:364)
        at
org.apache.axis.wsdl.symbolTable.SymbolTable.populate(SymbolTable.jav
a:350)
        at
org.apache.axis.wsdl.gen.Parser$WSDLRunnable.run(Parser.java:244)
        at java.lang.Thread.run(Thread.java:536)

Is this an interoperability issue, or am I missing something? I find it 
astonishing if it is an interoperability issue, since this is a very
simple 
service! But I think I read something about Axis not supporting unsigned

numbers...so is this really the case?

While I am posting...can anyone direct me to easy to follow instructions
on how 
to develop clients in Axis (some examples of how to use the generated
proxy 
classes)...seemed like there were several of us newbies needing this!

Thanks! /Anne Marie

The WSDL file is

<?xml version="1.0" encoding="utf-8" ?> 
- <definitions xmlns:s1="http://microsoft.com/wsdl/types/" 
xmlns:http="http://schemas.xmlsoap.org/wsdl/http/" 
xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" 
xmlns:s="http://www.w3.org/2001/XMLSchema"
xmlns:s0="http://tempuri.org/" 
xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" 
xmlns:tm="http://microsoft.com/wsdl/mime/textMatching/" 
xmlns:mime="http://schemas.xmlsoap.org/wsdl/mime/" 
targetNamespace="http://tempuri.org/"
xmlns="http://schemas.xmlsoap.org/wsdl/">
- <types>
- <s:schema elementFormDefault="qualified" 
targetNamespace="http://tempuri.org/">
  <s:import namespace="http://microsoft.com/wsdl/types/" /> 
- <s:element name="calculate">
- <s:complexType>
- <s:sequence>
  <s:element minOccurs="1" maxOccurs="1" name="x" type="s:int" /> 
  <s:element minOccurs="1" maxOccurs="1" name="y" type="s:int" /> 
  <s:element minOccurs="1" maxOccurs="1" name="meth" type="s1:char" /> 
  </s:sequence>
  </s:complexType>
  </s:element>
- <s:element name="calculateResponse">
- <s:complexType>
- <s:sequence>
  <s:element minOccurs="1" maxOccurs="1" name="calculateResult"
type="s:int" /> 
  </s:sequence>
  </s:complexType>
  </s:element>
- <s:element name="ConvertTemperature">
- <s:complexType>
- <s:sequence>
  <s:element minOccurs="1" maxOccurs="1" name="dFahrenheit"
type="s:double" /> 
  </s:sequence>
  </s:complexType>
  </s:element>
- <s:element name="ConvertTemperatureResponse">
- <s:complexType>
- <s:sequence>
  <s:element minOccurs="1" maxOccurs="1" name="ConvertTemperatureResult"

type="s:double" /> 
  </s:sequence>
  </s:complexType>
  </s:element>
  <s:element name="int" type="s:int" /> 
  <s:element name="double" type="s:double" /> 
  </s:schema>
- <s:schema elementFormDefault="qualified" 
targetNamespace="http://microsoft.com/wsdl/types/">
- <s:simpleType name="char">
  <s:restriction base="s:unsignedShort" /> 
  </s:simpleType>
  </s:schema>
  </types>
- <message name="calculateSoapIn">
  <part name="parameters" element="s0:calculate" /> 
  </message>
- <message name="calculateSoapOut">
  <part name="parameters" element="s0:calculateResponse" /> 
  </message>
- <message name="ConvertTemperatureSoapIn">
  <part name="parameters" element="s0:ConvertTemperature" /> 
  </message>
- <message name="ConvertTemperatureSoapOut">
  <part name="parameters" element="s0:ConvertTemperatureResponse" /> 
  </message>
- <message name="calculateHttpGetIn">
  <part name="x" type="s:string" /> 
  <part name="y" type="s:string" /> 
  <part name="meth" type="s:string" /> 
  </message>
- <message name="calculateHttpGetOut">
  <part name="Body" element="s0:int" /> 
  </message>
- <message name="ConvertTemperatureHttpGetIn">
  <part name="dFahrenheit" type="s:string" /> 
  </message>
- <message name="ConvertTemperatureHttpGetOut">
  <part name="Body" element="s0:double" /> 
  </message>
- <message name="calculateHttpPostIn">
  <part name="x" type="s:string" /> 
  <part name="y" type="s:string" /> 
  <part name="meth" type="s:string" /> 
  </message>
- <message name="calculateHttpPostOut">
  <part name="Body" element="s0:int" /> 
  </message>
- <message name="ConvertTemperatureHttpPostIn">
  <part name="dFahrenheit" type="s:string" /> 
  </message>
- <message name="ConvertTemperatureHttpPostOut">
  <part name="Body" element="s0:double" /> 
  </message>
- <portType name="Service1Soap">
- <operation name="calculate">
  <input message="s0:calculateSoapIn" /> 
  <output message="s0:calculateSoapOut" /> 
  </operation>
- <operation name="ConvertTemperature">
  <documentation>This method converts a temperature in degrees
Fahrenheit to a 
temperature in degrees Celsius.</documentation> 
  <input message="s0:ConvertTemperatureSoapIn" /> 
  <output message="s0:ConvertTemperatureSoapOut" /> 
  </operation>
  </portType>
- <portType name="Service1HttpGet">
- <operation name="calculate">
  <input message="s0:calculateHttpGetIn" /> 
  <output message="s0:calculateHttpGetOut" /> 
  </operation>
- <operation name="ConvertTemperature">
  <documentation>This method converts a temperature in degrees
Fahrenheit to a 
temperature in degrees Celsius.</documentation> 
  <input message="s0:ConvertTemperatureHttpGetIn" /> 
  <output message="s0:ConvertTemperatureHttpGetOut" /> 
  </operation>
  </portType>
- <portType name="Service1HttpPost">
- <operation name="calculate">
  <input message="s0:calculateHttpPostIn" /> 
  <output message="s0:calculateHttpPostOut" /> 
  </operation>
- <operation name="ConvertTemperature">
  <documentation>This method converts a temperature in degrees
Fahrenheit to a 
temperature in degrees Celsius.</documentation> 
  <input message="s0:ConvertTemperatureHttpPostIn" /> 
  <output message="s0:ConvertTemperatureHttpPostOut" /> 
  </operation>
  </portType>
- <binding name="Service1Soap" type="s0:Service1Soap">
  <soap:binding transport="http://schemas.xmlsoap.org/soap/http" 
style="document" /> 
- <operation name="calculate">
  <soap:operation soapAction="http://tempuri.org/calculate"
style="document" /> 
- <input>
  <soap:body use="literal" /> 
  </input>
- <output>
  <soap:body use="literal" /> 
  </output>
  </operation>
- <operation name="ConvertTemperature">
  <soap:operation soapAction="http://tempuri.org/ConvertTemperature" 
style="document" /> 
- <input>
  <soap:body use="literal" /> 
  </input>
- <output>
  <soap:body use="literal" /> 
  </output>
  </operation>
  </binding>
- <binding name="Service1HttpGet" type="s0:Service1HttpGet">
  <http:binding verb="GET" /> 
- <operation name="calculate">
  <http:operation location="/calculate" /> 
- <input>
  <http:urlEncoded /> 
  </input>
- <output>
  <mime:mimeXml part="Body" /> 
  </output>
  </operation>
- <operation name="ConvertTemperature">
  <http:operation location="/ConvertTemperature" /> 
- <input>
  <http:urlEncoded /> 
  </input>
- <output>
  <mime:mimeXml part="Body" /> 
  </output>
  </operation>
  </binding>
- <binding name="Service1HttpPost" type="s0:Service1HttpPost">
  <http:binding verb="POST" /> 
- <operation name="calculate">
  <http:operation location="/calculate" /> 
- <input>
  <mime:content type="application/x-www-form-urlencoded" /> 
  </input>
- <output>
  <mime:mimeXml part="Body" /> 
  </output>
  </operation>
- <operation name="ConvertTemperature">
  <http:operation location="/ConvertTemperature" /> 
- <input>
  <mime:content type="application/x-www-form-urlencoded" /> 
  </input>
- <output>
  <mime:mimeXml part="Body" /> 
  </output>
  </operation>
  </binding>
- <service name="Service1">
- <port name="Service1Soap" binding="s0:Service1Soap">
  <soap:address location="http://cramer/WebService4/Service1.asmx" /> 
  </port>
- <port name="Service1HttpGet" binding="s0:Service1HttpGet">
  <http:address location="http://cramer/WebService4/Service1.asmx" /> 
  </port>
- <port name="Service1HttpPost" binding="s0:Service1HttpPost">
  <http:address location="http://cramer/WebService4/Service1.asmx" /> 
  </port>
  </service>
  </definitions>









-------------------------------------------------
This mail sent through IMP: http://horde.org/imp/



Mime
View raw message