2015-11-22 7 views
7

私はJavaで簡単なログインWebサービスを作成しました。私はAndroidコードから呼び出しています。私は2つの文字列パラメータをWebサービスに渡しています。しかし、Webサービスではnullになります。k-Soapを使用したAndroidからのCallin Java Webサービスでのエラー

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サービスは、ローカルホストの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()); 

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> 

私はAndroidとWebサービスの作成の両方に新しいです。私は他の多くのソリューションを試しました。しかし、それは動作していないようです。

答えて

3

に名前を変更しようと、私は質問のANSERを見つけました。 wdslからxsdスキーマを開いた。 @WebParamアノテーションを与えても、arg0とarg1だけのパラメータを持っていました。私はリクエストでそれを変更し、パラメータが正しく渡されています。

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

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

//ユーザー名

+0

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

+0

@abhinav:私はUserNameに名前を付けましたが、まだ動作していないようです。 Webサービスではnullになります –

関連する問題