You are viewing a plain text version of this content. The canonical link for it is here.
Posted to java-user@axis.apache.org by Mike Burati <mb...@bowstreet.com> on 2003/01/28 22:44:46 UTC
RE: WSDL2Java throws a Null Pointer exception when processing mul
tipa rt WSDL
You might also try getting a more recent wsdl4j.jar
We had some problems with our own use of WSDL4j parsing multi-part
(imported) WSDLs a while back that were fixed in part by moving up to a more
recent WSDL4j (looks like ours was built in 8/02 from the class files I see
in the jar file) among other things...
The classes in the wsdl4j.jar that come with AXIS1.1beta appear to have been
build in 6/02
-----Original Message-----
From: Tom Jordahl [mailto:tomj@macromedia.com]
Sent: Tuesday, January 28, 2003 4:34 PM
To: 'axis-user@xml.apache.org'
Subject: RE: WSDL2Java throws a Null Pointer exception when processing
mul tipa rt WSDL
This sounds like a bug to me, but it looks like it might be the WSDL4J code
and not the Axis code. You might want to try just using WSDL4J to see if it
can read the multi-part WSDL without throwing a null pointer exception.
Tom Jordahl
Macromedia Server Development
-----Original Message-----
From: Richards, Mark [mailto:Mark.Richards@fmr.com]
Sent: Tuesday, January 28, 2003 1:15 PM
To: 'axis-user@xml.apache.org'
Subject: WSDL2Java throws a Null Pointer exception when processing multipa
rt WSDL
Hello,
I have WebSphere service which is based on Apache SOAP 2.x that has
multipart WSDL.
When I try to create a client with this, WSDL2Java throws a Null Pointer
Exception.
I have tried this with both release 1.0 and 1.1b.
java org.apache.axis.wsdl.WSDL2Java
http://localhost:8080/simple/wsdl/smallTest-service.wsdl
ava.lang.NullPointerException
at
org.apache.crimson.tree.ElementNode.getAttributeNodeNS(ElementNode.java:415)
at com.ibm.wsdl.util.xml.DOMUtils.getAttributeNS(Unknown
Source)
at
com.ibm.wsdl.util.xml.DOMUtils.getNamespaceURIFromPrefix(Unknown Source)
at
com.ibm.wsdl.util.xml.DOMUtils.getQualifiedAttributeValue(Unknown Source)
at com.ibm.wsdl.xml.WSDLReaderImpl.parsePort(Unknown Source)
at com.ibm.wsdl.xml.WSDLReaderImpl.parseService(Unknown
Source)
at com.ibm.wsdl.xml.WSDLReaderImpl.parseDefinitions(Unknown
Source)
at com.ibm.wsdl.xml.WSDLReaderImpl.readWSDL(Unknown Source)
at com.ibm.wsdl.xml.WSDLReaderImpl.readWSDL(Unknown Source)
at com.ibm.wsdl.xml.WSDLReaderImpl.readWSDL(Unknown Source)
at
org.apache.axis.wsdl.symbolTable.SymbolTable.populate(SymbolTable.java:369)
at
org.apache.axis.wsdl.symbolTable.SymbolTable.populate(SymbolTable.java:358)
at
org.apache.axis.wsdl.gen.Parser$WSDLRunnable.run(Parser.java:243)
at java.lang.Thread.run(Thread.java:484)
It's easy enough to work around, I just merge the files into one, but I
wanted to clarify if Axis is meant to support this?
Here is the WSDL for a simple case.
service
<?xml version="1.0" encoding="UTF-8"?>
<definitions name="smallTestService"
targetNamespace="http://localhost:8080/simple/wsdl/smallTest-service.wsdl"
xmlns="http://schemas.xmlsoap.org/wsdl/"
xmlns:binding="http://www.smalltest.com/definitions/smallTestRemoteInterface
"
xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
xmlns:tns="http://localhost:8080/simple/wsdl/smallTest-service.wsdl">
<import
location="http://localhost:8080/simple/wsdl/smallTest-binding.wsdl"
namespace="http://www.smalltest.com/definitions/smallTestRemoteInterface"/>
<service name="smallTestService">
<port binding="binding:smallTestBinding" name="smallTestPort">
<soap:address
location="http://localhost:8080/simple/servlet/rpcrouter"/>
</port>
</service>
</definitions>
Binding
<?xml version="1.0" encoding="UTF-8"?>
<definitions name="smallTest-binding"
targetNamespace="http://www.smalltest.com/definitions/smallTestRemoteInterfa
ce"
xmlns="http://schemas.xmlsoap.org/wsdl/"
xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
xmlns:tns="http://www.smalltest.com/definitions/smallTestRemoteInterface"
xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<message name="echoIntRequest">
<part name="myNum" type="xsd:int"/>
</message>
<message name="echoIntResponse">
<part name="result" type="xsd:int"/>
</message>
<portType name="smallTest">
<operation name="echoInt" parameterOrder="myNum">
<input message="tns:echoIntRequest" name="echoIntRequest"/>
<output message="tns:echoIntResponse" name="echoIntResponse"/>
</operation>
</portType>
<binding name="smallTestBinding" type="tns:smallTest">
<soap:binding style="rpc"
transport="http://schemas.xmlsoap.org/soap/http"/>
<operation name="echoInt">
<soap:operation soapAction="" style="rpc"/>
<input name="echoIntRequest">
<soap:body
encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
namespace="http://tempuri.org/smallTest" use="encoded"/>
</input>
<output name="echoIntResponse">
<soap:body
encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
namespace="http://tempuri.org/smallTest" use="encoded"/>
</output>
</operation>
</binding>
</definitions>
Thanks,
Mark
==================
Mark Richards
Any views expressed are not necessarily those of my company !