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 !