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.
>