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 Ivan Vignola <iv...@eng.it> on 2005/10/03 15:27:34 UTC
Fw: WSDL2JAVA error: java.lang.NullPointerException in getNewQName
Hi,
I developed a simple service, document style, with attached files in input message.
Creating stubs, wsdl2java throws exception listed below:
java.lang.NullPointerException
at org.apache.axis.wsdl.toJava.Utils.getNewQName(Utils.java:704)
at org.apache.axis.wsdl.toJava.JavaStubWriter.writeOperation(JavaStubWri
ter.java:779)
at org.apache.axis.wsdl.toJava.JavaStubWriter.writeFileBody(JavaStubWrit
er.java:355)
at org.apache.axis.wsdl.toJava.JavaWriter.generate(JavaWriter.java:148)
at org.apache.axis.wsdl.toJava.JavaBindingWriter.generate(JavaBindingWri
ter.java:141)
at org.apache.axis.wsdl.toJava.JavaGeneratorFactory$Writers.generate(Jav
aGeneratorFactory.java:284)
at org.apache.axis.wsdl.gen.Parser.generate(Parser.java:328)
at org.apache.axis.wsdl.gen.Parser.access$000(Parser.java:82)
at org.apache.axis.wsdl.gen.Parser$WSDLRunnable.run(Parser.java:246)
at java.lang.Thread.run(Thread.java:534)
That is my wsdl:
<?xml version="1.0" encoding="UTF-8"?>
<wsdl:definitions xmlns="http://schemas.xmlsoap.org/wsdl/" xmlns:apachesoap="http://xml.apache.org/xml-soap" xmlns:impl="http://localhost:8080/axis/services/Somma" xmlns:intf="http://localhost:8080/axis/services/Somma" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:tns1="http://servizi" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:mime="http://schemas.xmlsoap.org/wsdl/mime/" xmlns:wsdlsoap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" targetNamespace="http://localhost:8080/axis/services/Somma">
<wsdl:types>
<schema targetNamespace="http://servizi" xmlns="http://www.w3.org/2001/XMLSchema">
<element name="somma" type="xsd:anyType"/>
<complexType name="ArrayOfBinary">
<complexContent>
<restriction base="soapenc:Array">
<attribute ref="soapenc:arrayType" wsdl:arrayType="xsd:base64Binary[]"/>
</restriction>
</complexContent>
</complexType>
</schema>
<schema targetNamespace="http://localhost:8080/axis/services/Somma" xmlns="http://www.w3.org/2001/XMLSchema">
<element name="sommaReturn" type="xsd:anyType"/>
</schema>
</wsdl:types>
<wsdl:message name="sommaResponse">
<wsdl:part name="sommaReturn" element="impl:sommaReturn"/>
</wsdl:message>
<wsdl:message name="sommaRequest">
<wsdl:part name="body" element="tns1:somma"/>
<wsdl:part name="allegati" type="tns1:ArrayOfBinary"/>
</wsdl:message>
<wsdl:portType name="MioServizio3">
<wsdl:operation name="somma">
<wsdl:input name="sommaRequest" message="impl:sommaRequest"/>
<wsdl:output name="sommaResponse" message="impl:sommaResponse"/>
</wsdl:operation>
</wsdl:portType>
<wsdl:binding name="SommaSoapBinding" type="impl:MioServizio3">
<wsdlsoap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>
<wsdl:operation name="somma">
<wsdlsoap:operation/>
<wsdl:input>
<wsdlsoap:body part="body" use="literal"/>
<mime:multipartRelated>
<mime:part>
<wsdlsoap:body parts="body" use="literal"/>
</mime:part>
<mime:part>
<mime:content part="allegati" type="image/gif"/>
<mime:content part="allegati" type="image/jpeg"/>
</mime:part>
</mime:multipartRelated>
</wsdl:input>
<wsdl:output>
<wsdlsoap:body use="literal" namespace="http://localhost:8080/axis/services/Somma"/>
</wsdl:output>
</wsdl:operation>
</wsdl:binding>
<wsdl:service name="MioServizio3Service">
<wsdl:port name="Somma" binding="impl:SommaSoapBinding">
<wsdlsoap:address location="http://localhost:8080/axis/services/Somma"/>
</wsdl:port>
</wsdl:service>
</wsdl:definitions>
What' is my mystake?
Thanks in advance
Ivan.
Re: Fw: WSDL2JAVA error: java.lang.NullPointerException in getNewQName
Posted by Anne Thomas Manes <at...@gmail.com>.
Well, wsdl2java shouldn't throw an NPE... But, you do have a number of
errors in your WSDL.
1. When using document style, you should not extend soapenc:Array. Instead
you should define arrays using maxOccurs="unbounded". But in your case, you
probably just want to define the type as xsd:base64Binary:
<wsdl:part name="allegati" type="xsd:base64Binary"/>
2. Since you are sending two attachments, you must define two attachment
parts in the message definition (each with a unique name), and two mime
parts in your binding.
3. You must remove the namespace attribute from the wsdlsoap:body definition
in the wsdl:output definition.
Anne
On 10/3/05, Ivan Vignola <iv...@eng.it> wrote:
>
> Hi,
> I developed a simple service, document style, with attached files in input
> message.
> Creating stubs, wsdl2java throws exception listed below:
> java.lang.NullPointerException
> at org.apache.axis.wsdl.toJava.Utils.getNewQName(Utils.java:704)
> at org.apache.axis.wsdl.toJava.JavaStubWriter.writeOperation(JavaStubWri
> ter.java:779)
> at org.apache.axis.wsdl.toJava.JavaStubWriter.writeFileBody(JavaStubWrit
> er.java:355)
> at org.apache.axis.wsdl.toJava.JavaWriter.generate(JavaWriter.java:148)
> at org.apache.axis.wsdl.toJava.JavaBindingWriter.generate(JavaBindingWri
> ter.java:141)
> at org.apache.axis.wsdl.toJava.JavaGeneratorFactory$Writers.generate(Jav
> aGeneratorFactory.java:284)
> at org.apache.axis.wsdl.gen.Parser.generate(Parser.java:328)
> at org.apache.axis.wsdl.gen.Parser.access$000(Parser.java:82)
> at org.apache.axis.wsdl.gen.Parser$WSDLRunnable.run(Parser.java:246)
> at java.lang.Thread.run(Thread.java:534)
> That is my wsdl:
> <?xml version="1.0" encoding="UTF-8"?>
> <wsdl:definitions xmlns="http://schemas.xmlsoap.org/wsdl/"
> xmlns:apachesoap="http://xml.apache.org/xml-soap" xmlns:impl="
> http://localhost:8080/axis/services/Somma" xmlns:intf="
> http://localhost:8080/axis/services/Somma" xmlns:soapenc="
> http://schemas.xmlsoap.org/soap/encoding/" xmlns:tns1="http://servizi"
> xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:mime="
> http://schemas.xmlsoap.org/wsdl/mime/" xmlns:wsdlsoap="
> http://schemas.xmlsoap.org/wsdl/soap/" xmlns:xsd="
> http://www.w3.org/2001/XMLSchema" targetNamespace="
> http://localhost:8080/axis/services/Somma">
> <wsdl:types>
> <schema targetNamespace="http://servizi" xmlns="
> http://www.w3.org/2001/XMLSchema">
> <element name="somma" type="xsd:anyType"/>
> <complexType name="ArrayOfBinary">
> <complexContent>
> <restriction base="soapenc:Array">
> <attribute ref="soapenc:arrayType" wsdl:arrayType="xsd:base64Binary[]"/>
> </restriction>
> </complexContent>
> </complexType>
> </schema>
> <schema targetNamespace="http://localhost:8080/axis/services/Somma"
> xmlns="http://www.w3.org/2001/XMLSchema">
> <element name="sommaReturn" type="xsd:anyType"/>
> </schema>
> </wsdl:types>
> <wsdl:message name="sommaResponse">
> <wsdl:part name="sommaReturn" element="impl:sommaReturn"/>
> </wsdl:message>
> <wsdl:message name="sommaRequest">
> <wsdl:part name="body" element="tns1:somma"/>
> <wsdl:part name="allegati" type="tns1:ArrayOfBinary"/>
> </wsdl:message>
> <wsdl:portType name="MioServizio3">
> <wsdl:operation name="somma">
> <wsdl:input name="sommaRequest" message="impl:sommaRequest"/>
> <wsdl:output name="sommaResponse" message="impl:sommaResponse"/>
> </wsdl:operation>
> </wsdl:portType>
> <wsdl:binding name="SommaSoapBinding" type="impl:MioServizio3">
> <wsdlsoap:binding style="document" transport="
> http://schemas.xmlsoap.org/soap/http"/<http://schemas.xmlsoap.org/soap/http%22/>
> >
> <wsdl:operation name="somma">
> <wsdlsoap:operation/>
> <wsdl:input>
> <wsdlsoap:body part="body" use="literal"/>
> <mime:multipartRelated>
> <mime:part>
> <wsdlsoap:body parts="body" use="literal"/>
> </mime:part>
> <mime:part>
> <mime:content part="allegati" type="image/gif"/>
> <mime:content part="allegati" type="image/jpeg"/>
> </mime:part>
> </mime:multipartRelated>
> </wsdl:input>
> <wsdl:output>
> <wsdlsoap:body use="literal" namespace="
> http://localhost:8080/axis/services/Somma"/<http://localhost:8080/axis/services/Somma%22/>
> >
> </wsdl:output>
> </wsdl:operation>
> </wsdl:binding>
> <wsdl:service name="MioServizio3Service">
> <wsdl:port name="Somma" binding="impl:SommaSoapBinding">
> <wsdlsoap:address location="http://localhost:8080/axis/services/Somma"/<http://localhost:8080/axis/services/Somma%22/>
> >
> </wsdl:port>
> </wsdl:service>
> </wsdl:definitions>
> What' is my mystake?
> Thanks in advance
> Ivan.
>