Hai Anne, I prepared my WSDL first, then I used WSDL2Java for generating implementation stubs.
But the other methods (executeCommand,listUsers)works fine without any problem, only addUser with complex data type is having problem. Initially addUser signature is : addUser(String userName)-->works fine Now the signature is: addUser(String userName,NewUser user)-->fails with fault message "org.xml.sax.SAXException: operation description is missing parameter description!" Here is my complete WSDL: <?xml version="1.0" encoding="utf-8"?> <wsdl:definitions xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:tns="http://proactivenet.com/webservices/pwcommand/" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:xs="http://www.w3.org/2001/XMLSchema" targetNamespace="http://proactivenet.com/webservices/pwcommand/"> <!--=========================================================================================================--> <!--==========================================TYPES==========================================================--> <!--=========================================================================================================--> <wsdl:types> <xs:schema targetNamespace="http://proactivenet.com/webservices/pwcommand/" xmlns:tns="http://proactivenet.com/webservices/pwcommand/" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns="http://proactivenet.com/webservices/pwcommand/" elementFormDefault="qualified"> <xs:complexType name="ServiceException"> <xs:sequence> <xs:element name="errorId" type="xs:string" minOccurs="0" maxOccurs="1"/> <xs:element name="errorMsg" type="xs:string" minOccurs="0" maxOccurs="1"/> <xs:element name="errorDetail" type="xs:string" minOccurs="0" maxOccurs="1"/> </xs:sequence> </xs:complexType> <!--++++++++++++SOAP Headers++++++++++++++++++--> <xs:element name="sessionId" type="xs:string"/> <xs:element name="fault" type="tns:ServiceException"/> <xs:element name="executeCommand"> <xs:complexType> <xs:sequence> <xs:element name="argument" type="xs:string"/> </xs:sequence> </xs:complexType> </xs:element> <xs:element name="cmdResponse" type="xs:string"/> <xs:element name="listUsers"> <xs:complexType> <xs:sequence> <xs:element name="isLoggedInUsers" type="xs:boolean"/> </xs:sequence> </xs:complexType> </xs:element> <xs:complexType name="NewUser"> <xs:sequence> <xs:element name="email" type="xs:string"/> <xs:element name="password" type="xs:string"/> <xs:element name="forcePasswordChange" type="xs:boolean"/> </xs:sequence> </xs:complexType> <xs:element name="addUser"> <xs:complexType> <xs:sequence> <xs:element name="userName" type="xs:string"/> <xs:element name="newUser" type="tns:NewUser"/> </xs:sequence> </xs:complexType> </xs:element> <xs:element name="deleteUser"> <xs:complexType> <xs:sequence> <xs:element name="userName" type="xs:string"/> </xs:sequence> </xs:complexType> </xs:element> </xs:schema> </wsdl:types> <!--=========================================================================================================--> <!--===========================================MESSAGES======================================================--> <!--=========================================================================================================--> <wsdl:message name="sessionId"> <wsdl:part name="sessionId" element="tns:sessionId"/> </wsdl:message> <wsdl:message name="executeCommandInMsg"> <wsdl:part name="parameters" element="tns:executeCommand"/> </wsdl:message> <wsdl:message name="executeCommandOutMsg"> <wsdl:part name="result" element="tns:cmdResponse"/> </wsdl:message> <wsdl:message name="listUsersInMsg"> <wsdl:part name="parameters" element="tns:listUsers"/> </wsdl:message> <wsdl:message name="listUsersOutMsg"> <wsdl:part name="result" element="tns:cmdResponse"/> </wsdl:message> <wsdl:message name="addUserInMsg"> <wsdl:part name="parameters" element="tns:addUser"/> </wsdl:message> <wsdl:message name="addUserOutMsg"> <wsdl:part name="result" element="tns:cmdResponse"/> </wsdl:message> <wsdl:message name="deleteUserInMsg"> <wsdl:part name="parameters" element="tns:deleteUser"/> </wsdl:message> <wsdl:message name="deleteUserOutMsg"> <wsdl:part name="result" element="tns:cmdResponse"/> </wsdl:message> <wsdl:message name="Exception"> <wsdl:part name="fault" element="tns:fault"/> </wsdl:message> <!--=========================================================================================================--> <!--==========================================PORT TYPE======================================================--> <!--=========================================================================================================--> <wsdl:portType name="PWCommandInterface"> <!-- definition of operations in terms of their messages --> <wsdl:operation name="executeCommand"> <wsdl:input name="executeCommandInMsg" message="tns:executeCommandInMsg"/> <wsdl:output name="executeCommandOutMsg" message="tns:executeCommandOutMsg"/> <wsdl:fault name="Exception" message="tns:Exception"/> </wsdl:operation> <wsdl:operation name="listUsers"> <wsdl:input name="listUsersInMsg" message="tns:listUsersInMsg"/> <wsdl:output name="listUsersOutMsg" message="tns:listUsersOutMsg"/> <wsdl:fault name="Exception" message="tns:Exception"/> </wsdl:operation> <wsdl:operation name="addUser"> <wsdl:input name="addUserInMsg" message="tns:addUserInMsg"/> <wsdl:output name="addUserOutMsg" message="tns:addUserOutMsg"/> <wsdl:fault name="Exception" message="tns:Exception"/> </wsdl:operation> <wsdl:operation name="deleteUser"> <wsdl:input name="deleteUserInMsg" message="tns:deleteUserInMsg"/> <wsdl:output name="deleteUserOutMsg" message="tns:deleteUserOutMsg"/> <wsdl:fault name="Exception" message="tns:Exception"/> </wsdl:operation> </wsdl:portType> <!--=========================================================================================================--> <!--=========================================BINDING=========================================================--> <!--=========================================================================================================--> <wsdl:binding name="PWCommandServiceSoapBinding" type="tns:PWCommandInterface"> <soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/> <!-- definition of style and transport in general and use per operation --> <wsdl:operation name="addUser"> <soap:operation soapAction=""/> <wsdl:input name="addUserInMsg"> <soap:header message="tns:sessionId" part="sessionId" use="literal"/> <soap:body use="literal"/> </wsdl:input> <wsdl:output name="addUserOutMsg"> <soap:body use="literal"/> </wsdl:output> <wsdl:fault name="Exception"> <soap:fault name="Exception" use="literal"/> </wsdl:fault> </wsdl:operation> <wsdl:operation name="deleteUser"> <soap:operation soapAction=""/> <wsdl:input name="deleteUserInMsg"> <soap:header message="tns:sessionId" part="sessionId" use="literal"/> <soap:body use="literal"/> </wsdl:input> <wsdl:output name="deleteUserOutMsg"> <soap:body use="literal"/> </wsdl:output> <wsdl:fault name="Exception"> <soap:fault name="Exception" use="literal"/> </wsdl:fault> </wsdl:operation> <wsdl:operation name="listUsers"> <soap:operation soapAction=""/> <wsdl:input name="listUsersInMsg"> <soap:header message="tns:sessionId" part="sessionId" use="literal"/> <soap:body use="literal"/> </wsdl:input> <wsdl:output name="listUsersOutMsg"> <soap:body use="literal"/> </wsdl:output> <wsdl:fault name="Exception"> <soap:fault name="Exception" use="literal"/> </wsdl:fault> </wsdl:operation> <wsdl:operation name="executeCommand"> <soap:operation soapAction=""/> <wsdl:input name="executeCommandInMsg"> <soap:header message="tns:sessionId" part="sessionId" use="literal"/> <soap:body use="literal"/> </wsdl:input> <wsdl:output name="executeCommandOutMsg"> <soap:body use="literal"/> </wsdl:output> <wsdl:fault name="Exception"> <soap:fault name="Exception" use="literal"/> </wsdl:fault> </wsdl:operation> </wsdl:binding> <!--=========================================================================================================--> <!--==========================================SERVICE========================================================--> <!--=========================================================================================================--> <wsdl:service name="PNPWCommandService"> <!-- definition a port using the above binding and a URL --> <wsdl:port name="PWCommandService" binding="tns:PWCommandServiceSoapBinding"> <soap:address location="http://localhost/pn/services/PWCommandService"/> </wsdl:port> </wsdl:service> </wsdl:definitions> thanks Durga Srinivasu On Fri, 09 Feb 2007 Anne Thomas Manes wrote : >Can you provide the complete WSDL please? And the WSDD? >Did you use code-first or wsdl-first approach? > >Anne > >On 9 Feb 2007 07:26:25 -0000, Durga Srinivasu <[EMAIL PROTECTED]> wrote: >> >>Hai All, >> >>I have a question on Axis 1.4. >> >>Is axis supports web service operations with complex java object as input >>(Ex: addUser(String userName,NewUser details))?. >> >>I am able to deploy the service with custom java object "NewUser" input. >>But when i try to invoke the same service with soap client, i am getting the >>following soap fault message. >> >>SOAP RESPONSE: >> >><soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" >>xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi=" >>http://www.w3.org/2001/XMLSchema-instance"> >> <soapenv:Body> >> <soapenv:Fault> >> <faultcode>soapenv:Server.userException</faultcode> >> <faultstring>org.xml.sax.SAXException: operation description is >>missing parameter description!</faultstring> >> <detail> >> <ns1:hostname xmlns:ns1="http://xml.apache.org/axis/ >>">srinivasu</ns1:hostname> >> </detail> >> </soapenv:Fault> >> </soapenv:Body> >></soapenv:Envelope> >> >>SOAP REQUEST: >> >><soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" >>xmlns:pwc="http://proactivenet.com/webservices/pwcommand/"> >> <soapenv:Header> >> <pwc:sessionId>EX</pwc:sessionId> >> </soapenv:Header> >> <soapenv:Body> >> <pwc:addUser> >> <pwc:userName>EX</pwc:userName> >> <pwc:newUser> >> <pwc:email>EX</pwc:email> >> <pwc:password>EX</pwc:password> >> <pwc:forcePasswordChange>EX</pwc:forcePasswordChange> >> </pwc:newUser> >> </pwc:addUser> >> </soapenv:Body> >></soapenv:Envelope> >> >>addUser schema definition in wsdl: >> >><xs:complexType name="NewUser"> >> <xs:sequence> >> <xs:element name="email" type="xs:string" /> >> <xs:element name="password" type="xs:string" /> >> <xs:element name="forcePasswordChange" type="xs:boolean" /> >> </xs:sequence> >></xs:complexType> >> >><xs:element name="addUser"> >> <xs:complexType> >> <xs:sequence> >> <xs:element name="userName" type="xs:string" /> >> <xs:element name="newUser" type="tns:NewUser" /> >> </xs:sequence> >> </xs:complexType> >></xs:element> >> >> >>If anybody is facing the similar issue, please let me know. >> >>thanks >>Durga Srinivasu >> >> >><http://adworks.rediff.com/cgi-bin/AdWorks/sigclick.cgi/www.rediff.com/signature-home.htm/[EMAIL >> PROTECTED]>
