Error in Android's Callin Java web service using k-Soap

I have a simple Login Webservice in Java and I am calling it from Android code. I pass two String parameters to the Webservice. But they become null in the Webservice.

WebService Code : public boolean authenicateUser(@WebParam(name="username")String username, @WebParam(name="password")String password) { System.out.println("Inside Authenticae USER+=========="+name+"-----"+Password);//This becomes null and null final String LOGIN_SQL="SELECT * FROM UserDetails WHERE UserName=? and Password=?"; 

Web service hosted on Localhost Tomcat server

  Android Server Request : private static String NAMESPACE = "http://src.AndroidExample.Nagesh.com/"; private static String URL = "http://192.168.56.1:8080/AndroidLoginWS/LoginWebService?wsdl"; private static String SOAP_ACTION = "http://src.AndroidExample.Nagesh.com/"; Systerequest=new SoapObject(NAMESPACE,WebMethodName); System.out.println("Values before calling WS"+user.UserName+"------"+user.Password); request.addProperty("username", user.UserName); request.addProperty("password",user.Password); return request; SoapSerializationEnvelope envelope = new SoapSerializationEnvelope( SoapEnvelope.VER11); envelope.setOutputSoapObject(request); HttpTransportSE androidHttpTransport = new HttpTransportSE(URL); androidHttpTransport.call(SOAP_ACTION + WebMethodName, envelope); System.out.println("INside InvokeLoginWS==========RETURNED................."); SoapPrimitive response = (SoapPrimitive) envelope.getResponse(); loginStatus = Boolean.parseBoolean(response.toString()); 

WSDL file:

 This XML file does not appear to have any style information associated with it. The document tree is shown below. <!-- Published by JAX-WS RI (http://jax-ws.java.net). RI version is JAX-WS RI 2.2.10 svn-revision#919b322c92f13ad085a933e8dd6dd35d4947364b. --> <!-- Generated by JAX-WS RI (http://jax-ws.java.net). RI version is JAX-WS RI 2.2.10 svn-revision#919b322c92f13ad085a933e8dd6dd35d4947364b. --> <definitions xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd" xmlns:wsp="http://www.w3.org/ns/ws-policy" xmlns:wsp1_2="http://schemas.xmlsoap.org/ws/2004/09/policy" xmlns:wsam="http://www.w3.org/2007/05/addressing/metadata" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:tns="http://src.AndroidExample.Nagesh.com/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="http://schemas.xmlsoap.org/wsdl/" targetNamespace="http://src.AndroidExample.Nagesh.com/" name="LoginService"> <types> <xsd:schema> <xsd:import namespace="http://src.AndroidExample.Nagesh.com/" schemaLocation="http://192.168.56.1:8080/AndroidLoginWS/LoginWebService?xsd=1"/> </xsd:schema> </types> <message name="register"> <part name="parameters" element="tns:register"/> </message> <message name="registerResponse"> <part name="parameters" element="tns:registerResponse"/> </message> <message name="authenicateUser"> <part name="parameters" element="tns:authenicateUser"/> </message> <message name="authenicateUserResponse"> <part name="parameters" element="tns:authenicateUserResponse"/> </message> <portType name="LoginMethods"> <operation name="register"> <input wsam:Action="http://src.AndroidExample.Nagesh.com/LoginMethods/registerRequest" message="tns:register"/> <output wsam:Action="http://src.AndroidExample.Nagesh.com/LoginMethods/registerResponse" message="tns:registerResponse"/> </operation> <operation name="authenicateUser"> <input wsam:Action="http://src.AndroidExample.Nagesh.com/LoginMethods/authenicateUserRequest" message="tns:authenicateUser"/> <output wsam:Action="http://src.AndroidExample.Nagesh.com/LoginMethods/authenicateUserResponse" message="tns:authenicateUserResponse"/> </operation> </portType> <binding name="LoginWSPortBinding" type="tns:LoginMethods"> <soap:binding transport="http://schemas.xmlsoap.org/soap/http" style="document"/> <operation name="register"> <soap:operation soapAction=""/> <input> <soap:body use="literal"/> </input> <output> <soap:body use="literal"/> </output> </operation> <operation name="authenicateUser"> <soap:operation soapAction=""/> <input> <soap:body use="literal"/> </input> <output> <soap:body use="literal"/> </output> </operation> </binding> <service name="LoginService"> <port name="LoginWSPort" binding="tns:LoginWSPortBinding"> <soap:address location="http://192.168.56.1:8080/AndroidLoginWS/LoginWebService"/> </port> </service> </definitions> 

I am new to Android and creating a web service. I tried many other solutions. But it doesn't seem to work.

+7
java android web-services
source share
2 answers

I found anser for the question. I opened the xsd schema from wdsl. It only had parameters like arg0 and arg1, although I gave the @WebParam annotation. I changed it in the request, the parameter gets correctly.

+3
source share
 final String LOGIN_SQL="SELECT * FROM UserDetails WHERE UserName=? and Password=?"; request.addProperty("name", user.UserName); request.addProperty("Password",user.Password); 

// try to change the name to UserName

+2
source share

All Articles