Я реализовал веб-сервис Java WelcomMsg, и он работает на Apache Axis.
У веб-сервиса есть только один метод greetUs (). Возвращает строку «Привет»:
Когда я вызываю с использованием объекта HttpTransport, я получаю исключение и всегда получаю «ложь».
Я предполагаю, что пространство имен здесь. Пожалуйста, посмотрите на код и скажите, что отсутствует / неверно. Я дал метод обслуживания, содержимого wsdl и содержимого мыльного клиента Android.
Метод в сервисе выглядит следующим образом:
public class WelcomeMsg {
public String greetUs()
{
return "Greetings!!!";
}
}
Вот wsdl:
<?xml version="1.0" encoding="UTF-8"?>
<wsdl:part element="impl:greetUsResponse" name="parameters">
</wsdl:part>
<wsdl:part element="impl:greetUs" name="parameters">
</wsdl:part>
<wsdl:operation name="greetUs">
<wsdl:input message="impl:greetUsRequest" name="greetUsRequest">
</wsdl:input>
<wsdl:output message="impl:greetUsResponse" name="greetUsResponse">
</wsdl:output>
</wsdl:operation>
<wsdlsoap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>
<wsdl:operation name="greetUs">
<wsdlsoap:operation soapAction=""/>
<wsdl:input name="greetUsRequest">
<wsdlsoap:body use="literal"/>
</wsdl:input>
<wsdl:output name="greetUsResponse">
<wsdlsoap:body use="literal"/>
</wsdl:output>
</wsdl:operation>
<wsdl:port binding="impl:WelcomeMsgSoapBinding" name="WelcomeMsg">
<wsdlsoap:address location="http://localhost:8080/NewWebService/services/WelcomeMsg"/>
</wsdl:port>
Мыльный клиент Android выглядит следующим образом:
package com.example.HelloDroid;
import android.app.Activity;
import android.os.Bundle;
import android.widget.TextView;
import org.ksoap2.SoapEnvelope;
import org.ksoap2.serialization.*;
import org.ksoap2.transport.HttpTransportSE;
public class Droid extends Activity {
/** Called when the activity is first created. */
private static final String SOAP_ACTION = "DefaultNamespace";
private static final String METHOD_NAME = "greetUs";
private static final String NAMESPACE = "urn:DefaultNamespace";
private static final String URL = "http://192.168.186.136:12733/NewWebService/services/WelcomeMsg";
TextView tv;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
tv=(TextView) findViewById(R.id.TextView01);
SoapObject request = new SoapObject(NAMESPACE, METHOD_NAME);
SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(SoapEnvelope.VER11);
envelope.dotNet=false;
envelope.setOutputSoapObject(request);
HttpTransportSE ht = new HttpTransportSE(URL);
try{
ht.call(SOAP_ACTION, envelope);
//tv.setText("http set");
SoapPrimitive sp= (SoapPrimitive) envelope.getResponse();
tv.setText("Msg from service: "+sp);
}
catch(Exception e)
{
e.printStackTrace();
}
}
}