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 "Richards, Mark" <Ma...@fmr.com> on 2003/01/28 19:14:30 UTC

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 !