Hi Anne, thanks for the tips. I'm using the editor you recommended - runs on linux even ;-) .
I'm getting one error still. I moved to WSDL2Java from axis v1.3 for better error messages. I'm sure the error has something to do with 'extension base' . I just resolved a jira issue on this: http://issues.apache.org/jira/browse/AXIS-2165 I'm getting: /home/iksrazal/white3/build.xml:154: WSDL processing error for /home/iksrazal/white3/resources/axis-jira-doclit.wsdl : Type {http://com/callcentreweb/types}elementReturnWeb_Base is referenced but not defined. I'm not quite sure how to do this with doc lit. Any ideas ? Thanks! <?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> <sequence> <element name="tns:errorMessage" type="string"/> <element name="tns:successErrorCode" type="int"/> </sequence> </complexType> </element> <element name="elementReturnWeb_Login"> <complexType> <complexContent> <extension base="tns:elementReturnWeb_Base"> <sequence> <element name="tns:SOAP_Session_id" type="string"/> <element name="tns:web_user_name" type="string"/> </sequence> </extension> </complexContent> </complexType> </element> <element name="web_Login_Type"> <complexType> <sequence> <element ref="tns:user_nameElement"/> <element ref="tns:user_passwordElement"/> </sequence> </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="parameters" element="ns2:web_Login_Type"/> </message> <message name="CallCentreWebEndpoint_web_LoginResponse"> <part name="result" element="ns2:elementReturnWeb_Login"/> </message> <portType name="CallCentreWebEndpoint"> <operation name="web_Login"> <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> Em Quarta 23 Novembro 2005 12:08, o Anne Thomas Manes escreveu: > 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
