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

Reply via email to