I agree that the NPE isn't particularly informative, but you do have a number of errors in your WSDL. I suggest you get a WSDL editor with a validation function.
The Cape Clear SOA Editor is free and works pretty well.

First error:
You have two elements defined in your schema named "elementReturnWeb_Base"

Second set of errors:
You need to be more careful with your namespace qualifications. In your message parts, you don't qualify the referenced elements, so it defaults to the wsdl namespace. e.g.,

This:
  <part name="user_name" element="user_nameElement"/>

should be this:
  <part name="user_name" element="tns:user_nameElement"/>

And finally:
When using document style, a message must contain at most one body part. You have two body parts in your login request. You must create a wrapper element (preferably with the same name as the operation) and use that as your input element. e.g.,

 <x:element name="web_Login">
  <x:complexType>
   <x:sequence>
     <x:element ref="tns:user_nameElement"/>
     <x:element ref="tns:user_passwordElement"/>
    </x:sequence>
   </x:complexType>
 </x:element>

 <w:message name="CallCentreWebEndpoint_web_Login">
  <w:part name="parameters" element="tns:web_Login"/>
 </message>

Anne

On 11/23/05, iksrazal <[EMAIL PROTECTED]> wrote:
Hi all,

I'm trying to convert a simple wsdl from rpc encoded to doc lit and wsdl 2.0.
Please excuse if I'm making a simple error here. However, the wsdl is valid
xml. I'm getting:

./WSDL2Java.sh -uri wout/axis- jira-doclit.wsdl -o wout/
...

Exception in thread "main" java.lang.NullPointerException
  at
org.apache.axis2.wsdl.builder.wsdl4j.WSDLPump.generateWrapperSchema(WSDLPump.java:633)
  at
org.apache.axis2.wsdl.builder.wsdl4j.WSDLPump.populateDefinition (WSDLPump.java:153)
  at
org.apache.axis2.wsdl.builder.wsdl4j.WSDLPump.pump(WSDLPump.java:100)
  at
org.apache.axis2.wsdl.builder.wsdl4j.WSDL1ToWOMBuilder.build(WSDL1ToWOMBuilder.java:126)
  at
org.apache.axis2.wsdl.builder.wsdl4j.WSDL1ToWOMBuilder.build (WSDL1ToWOMBuilder.java:95)
  at
org.apache.axis2.wsdl.codegen.CodeGenerationEngine.getWOM(CodeGenerationEngine.java:117)
  at
org.apache.axis2.wsdl.codegen.CodeGenerationEngine.<init>(CodeGenerationEngine.java :47)
  at org.apache.axis2.wsdl.WSDL2Code.main(WSDL2Code.java:30)
  at org.apache.axis2.wsdl.WSDL2Java.main(WSDL2Java.java:21)

The line throwing is:

if (XMLSCHEMA_NAMESPACE_URI.equals(schemaTypeName.getNamespaceURI ())){

Here's my wsdl, once again please excuse if there is an error, but even still
perhaps the the error should'nt be NPE.

<?xml version="1.0" encoding="UTF-8"?>

<definitions name="CallCentreWebService"
targetNamespace="http://com/callcentreweb"
xmlns:tns="http://com/callcentreweb" xmlns=" http://schemas.xmlsoap.org/wsdl/"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/ "
xmlns:ns2="http://com/callcentreweb/types">
<types>
  <schema targetNamespace="http://com/callcentreweb/types "
xmlns:tns="http://com/callcentreweb/types"
xmlns:soap11-enc="http://schemas.xmlsoap.org/soap/encoding/ "
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/ "
xmlns="http://www.w3.org/2001/XMLSchema">
  <import namespace="http://schemas.xmlsoap.org/soap/encoding/"/ >
  <element name="elementReturnWeb_Base">
  <complexType name="ReturnWeb_Base">
  <sequence>
  <element name="errorMessage" type="string"/>
  <element name="successErrorCode" type="int"/>
  </sequence>
  </complexType>
  </element>
  <element name="elementReturnWeb_Base">
  <complexType name="ReturnWeb_Login">
  <complexContent>
  <extension base="tns:ReturnWeb_Base">
  <sequence>
  <element name="SOAP_Session_id" type="string"/>
  <element name="web_user_name" type="string"/>
  </sequence>
  </extension>
  </complexContent>
  </complexType>
  </element>
  <element name="user_nameElement" type="xsd:string"/>
  <element name="user_passwordElement" type="xsd:string"/>
</schema></types>
<message name="CallCentreWebEndpoint_web_Login">
  <part name="user_name" element="user_nameElement"/>
  <part name="user_password" element="user_passwordElement"/>
</message>
<message name="CallCentreWebEndpoint_web_LoginResponse">
  <part name="result" element="elementReturnWeb_Login"/>
</message>
<portType name="CallCentreWebEndpoint">
  <operation name="web_Login" parameterOrder="user_name user_password">
  <input message="tns:CallCentreWebEndpoint_web_Login"/>
  <output message="tns:CallCentreWebEndpoint_web_LoginResponse"/>
  </operation>
</portType>
<binding name="CallCentreWebEndpointBinding"
type="tns:CallCentreWebEndpoint">
  <soap:binding transport=" http://schemas.xmlsoap.org/soap/http"
style="document"/>
  <operation name="web_Login">
  <soap:operation soapAction=""/>
  <input>
  <soap:body use="literal"/>
  </input>
  <output>
  <soap:body use="literal"/>
  </output>
  </operation>
</binding>
<service name="CallCentreWebService">
  <port name="CallCentreWebEndpointPort"
binding="tns:CallCentreWebEndpointBinding">
  <soap:address
location="http://127.0.0.1"/></port></service></definitions>

--
Faster, better, cheaper - choose two of the above.   - Old engineering proverb

It's easier to ask for forgiveness than permission.   - Another old
engineering proverb

Reply via email to