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
