2015-11-22 13 views
7

Ho creato un semplice servizio di accesso Web in Java e lo chiamo dal codice Android. Sto passando due parametri stringa al servizio web. Ma diventano nulli nel servizio Web.Errore in Callin Java webservice da Android utilizzando k-Soap

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=?"; 

Il servizio Web è ospitato su server di Localhost Tomcat

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()); 

Il file WSDL è:

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's version is JAX-WS RI 2.2.10 svn-revision#919b322c92f13ad085a933e8dd6dd35d4947364b. 
--> 
<!-- 
Generated by JAX-WS RI (http://jax-ws.java.net). RI's 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> 

Sono nuovo di Android e creazione di Web Service. Ho provato molte altre soluzioni. Ma non sembra funzionare.

risposta

3

ho trovato l'anser per la domanda. Ho aperto lo schema xsd dal wdsl. Stava avendo i parametri solo come arg0 e arg1, anche se ho dato l'annotazione @WebParam. L'ho modificato nella richiesta, il parametro viene passato correttamente.

2
final String LOGIN_SQL="SELECT * FROM UserDetails WHERE UserName=? and Password=?"; 

request.addProperty("name", user.UserName); 
request.addProperty("Password",user.Password); 

// provare a cambiare nome in UserName

+0

dice '@WebParam (name =" name ")' – Christine

+0

@abhinav: ho creato il nome in UserName, ma non sembra funzionare. Arriva come null nel webservice –