Russell Butek
[EMAIL PROTECTED]
Please respond to [EMAIL PROTECTED]
To: [EMAIL PROTECTED]
cc:
Subject: wsdl2java io.exception problem
We are currently using axis to implement mathematical web services.
In our last example, I have installed a service for Symbolic Integration at:
http://perseus.risc.uni-linz.ac.at:8080/axis/services/SymbolicIntegration?wsdl
We can use the service by a hand-written client however trying to
generate the java classes automatically using wsdl2java yields the
following error.
java.io.IOException: Type http://www.openmath.org/OpenMath:OMOBJ is
referenced but not defined.
at
org.apache.axis.wsdl.toJava.SymbolTable.checkForUndefined(SymbolTable.jav
a:405)
at
org.apache.axis.wsdl.toJava.SymbolTable.add(SymbolTable.java:331)
- at org.apache.axis.wsdl.toJava.Emitter.emit(Emitter.java:188)
at org.apache.axis.wsdl.toJava.Emitter.emit(Emitter.java:155)
at
at java.lang.Thread.run(Thread.java:484)
I have also tried to manually rewrite the wsdl description by importing
the OpenMath schema (see attachment) and I get again:
java.io.IOException: Type http://www.openmath.org/OpenMath:OMSTR is
referenced but not defined.
at
org.apache.axis.wsdl.toJava.SymbolTable.checkForUndefined(SymbolTable.java:405)
at
org.apache.axis.wsdl.toJava.SymbolTable.add(SymbolTable.java:331)
- at org.apache.axis.wsdl.toJava.Emitter.emit(Emitter.java:188)
at org.apache.axis.wsdl.toJava.Emitter.emit(Emitter.java:155)
at
at java.lang.Thread.run(Thread.java:484)
Any hint?
Thank you
Olga
--
--
Olga Caprotti [EMAIL PROTECTED]
RISC-Linz, Johannes Kepler University, A-4040 Linz
<?xml version="1.0" encoding="UTF-8"?>
<wsdl:definitions
targetNamespace="http://localhost:8080/axis/services/SymbolicIntegration"
xmlns="http://schemas.xmlsoap.org/wsdl/"
xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/"
xmlns:impl="http://localhost:8080/axis/services/SymbolicIntegration-impl"
xmlns:intf="http://localhost:8080/axis/services/SymbolicIntegration"
xmlns:tns1="http://www.openmath.org/OpenMath"
xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
xmlns:wsdlsoap="http://schemas.xmlsoap.org/wsdl/soap/"
xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<wsdl:types>
<xsd:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
targetNamespace="http://www.openmath.org/OpenMath">
<xsd:element name="tns1:OMS">
<xsd:complexType>
<xsd:attribute name="name" type="tns1:omSymbname" use="required"/>
<xsd:attribute name="cd" type="tns1:omCdname" use="required"/>
</xsd:complexType>
</xsd:element>
<xsd:complexType name="tns1:OMSymbolType">
<xsd:attribute name="name" type="tns1:omSymbname" use="required"/>
<xsd:attribute name="cd" type="tns1:omCdname" use="required"/>
</xsd:complexType>
<xsd:simpleType name="tns1:omSymbname">
<xsd:restriction base="xsd:string">
<xsd:pattern value="[A-Za-z][A-Za-z0-9_]*" />
</xsd:restriction>
</xsd:simpleType>
<xsd:simpleType name="tns1:omCdname">
<xsd:restriction base="xsd:string">
<xsd:pattern value="[a-z][a-z0-9_]*"/>
</xsd:restriction>
</xsd:simpleType>
<xsd:element name="tns1:OMV" >
<xsd:complexType>
<xsd:attribute name="name" type="tns1:omVariable" use="required" />
</xsd:complexType>
</xsd:element>
<xsd:simpleType name="tns1:omVariable">
<xsd:restriction base="xsd:string">
<xsd:pattern value="([A-Za-z0-9+=(),-\./:?!#$%*;@\[\]\^_`{|}])+"/>
</xsd:restriction>
</xsd:simpleType>
<xsd:element name="tns1:OMI" type="tns1:omInteger" />
<!-- should derive from int not string, -->
<xsd:simpleType name="omInteger" >
<xsd:restriction base="xsd:string">
<xsd:pattern value="(-\s?)?[0-9]+(\s[0-9]+)* ?" /> <xsd:pattern value="(-\s?)?x\s?[0-9A-F]+(\s[0-9A-F]+)*" />
</xsd:restriction>
</xsd:simpleType>
<!-- should derive from double not string,
and if possible require exactly one of
the hex and dec attributes
-->
<xsd:element name="tns1:OMB" type="xsd:base64Binary" />
<xsd:simpleType name="tns1:omDecFloat" >
<xsd:restriction base="xsd:string">
<xsd:pattern value="(-?)([0-9]+)?(\.[0-9]+)?(e([+-]?)[0-9]+)?" />
</xsd:restriction>
</xsd:simpleType>
<xsd:simpleType name="tns1:omHexFloat">
<xsd:restriction base="xsd:string">
<xsd:pattern value="(-?)([0-9A-F]+)?(.[0-9A-F]+)?(e(-?)[0-9A-F]+)?" />
</xsd:restriction>
</xsd:simpleType>
<xsd:element name="tns1:OMF" type="tns1:OMFloat"/>
<xsd:complexType name="tns1:OMFloat">
<xsd:attribute name="dec" type="tns1:omDecFloat" use="optional" />
<xsd:attribute name="hex" type="tns1:omHexFloat" use="optional" />
</xsd:complexType>
<xsd:element name="tns1:OMSTR" type="xsd:string"/>
<xsd:group name="tns1:omElement" >
<xsd:choice>
<xsd:element ref="tns1:OMS"/>
<xsd:element ref="tns1:OMV"/>
<xsd:element ref="tns1:OMI"/>
<xsd:element ref="tns1:OMB"/>
<xsd:element ref="tns1:OMSTR"/>
<xsd:element ref="tns1:OMF"/>
<xsd:element ref="tns1:OMA"/>
<xsd:element ref="tns1:OMBIND"/>
<xsd:element ref="tns1:OME"/>
<xsd:element ref="tns1:OMATTR"/>
</xsd:choice>
</xsd:group>
<xsd:element name="tns1:OMA" type="tns1:OMApplication"/>
<xsd:complexType name="tns1:OMApplication">
<xsd:group ref="tns1:omElement" maxOccurs="unbounded"/>
</xsd:complexType>
<xsd:element name="tns1:OMBIND">
<xsd:complexType>
<xsd:sequence>
<xsd:group ref="tns1:omElement" />
<xsd:element ref="tns1:OMBVAR" />
<xsd:group ref="tns1:omElement"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<!-- if possible arrange that the OMATTR branch must eventually end in an OMV -->
<xsd:element name="tns1:OMBVAR">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element ref="tns1:OMV"/>
<xsd:element ref="tns1:OMATTR"/>
</xsd:choice>
</xsd:complexType>
</xsd:element>
<xsd:element name="tns1:OME">
<xsd:complexType>
<xsd:sequence>
<xsd:element ref="tns1:OMS"/>
<xsd:group ref="tns1:omElement" minOccurs="0" maxOccurs="unbounded" />
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="tns1:OMATTR">
<xsd:complexType>
<xsd:sequence>
<xsd:element ref="tns1:OMATP"/>
<xsd:group ref="tns1:omElement"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="tns1:OMATP">
<xsd:complexType>
<xsd:sequence maxOccurs="unbounded">
<xsd:element ref="tns1:OMS"/>
<xsd:group ref="tns1:omElement"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="tns1:OMOBJ" type="tns1:OMOBJType"/>
<xsd:complexType name="tns1:OMOBJType">
<xsd:group ref="tns1:omElement" maxOccurs="unbounded"/>
</xsd:complexType>
</xsd:schema>
</wsdl:types>
<wsdl:message name="DefIntResponse">
<wsdl:part name="return" type="xsd:string"/>
- </wsdl:message>
<wsdl:message name="DefIntRequest">
<wsdl:part name="in0" type="tns1:OMOBJType"/>
<wsdl:part name="in1" type="tns1:omFloat"/>
<wsdl:part name="in2" type="tns1:omFloat"/>
</wsdl:message>
<wsdl:message name="IndefIntRequest">
<wsdl:part name="in0" type="tns1:OMOBJType"/>
</wsdl:message>
<wsdl:message name="IndefIntResponse">
<wsdl:part name="return" type="xsd:string"/>
</wsdl:message>
<wsdl:portType name="Integrator">
<wsdl:operation name="IndefInt" parameterOrder="in0">
<wsdl:input message="intf:IndefIntRequest"/>
<wsdl:output message="intf:IndefIntResponse"/>
</wsdl:operation>
<wsdl:operation name="DefInt" parameterOrder="in0 in1 in2">
- <wsdl:input message="intf:DefIntRequest"/>
<wsdl:output message="intf:DefIntResponse"/>
</wsdl:portType>
<wsdl:binding name="SymbolicIntegrationSoapBinding" type="intf:Integrator">
<wsdlsoap:binding style="rpc" transport="http://schemas.xmlsoap.org/soap/http"/>
<wsdl:operation name="IndefInt">
- <wsdlsoap:operation soapAction=""/>
<wsdl:input>
<wsdlsoap:body encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="IndefInt" use="encoded"/>
</wsdl:input>
<wsdl:output>
<wsdlsoap:body encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="http://localhost:8080/axis/services/SymbolicIntegration" use="encoded"/>
</wsdl:output>
<wsdl:operation name="DefInt">
- <wsdlsoap:operation soapAction=""/>
<wsdl:input>
<wsdlsoap:body encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="DefInt" use="encoded"/>
</wsdl:input>
<wsdl:output>
<wsdlsoap:body encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="http://localhost:8080/axis/services/SymbolicIntegration" use="encoded"/>
</wsdl:output>
</wsdl:binding>
<wsdl:service name="IntegratorService">
<wsdl:port binding="intf:SymbolicIntegrationSoapBinding" name="SymbolicIntegration">
<wsdlsoap:address location="http://localhost:8080/axis/services/SymbolicIntegration"/>
</wsdl:port>
</wsdl:service>