1.开发service接口层
package com.yun.service.User;
import javax.jws.WebMethod;
import javax.jws.WebParam;
import javax.jws.WebService;
import javax.jws.soap.SOAPBinding;
import javax.jws.soap.SOAPBinding.Style;
import com.yun.bean.User;
@WebService
@SOAPBinding(style=Style.RPC)
public interface UserService {
//public String add(String user);
// @WebMethod(operationName="sayHi")
public String sayHi(@WebParam(name = "userName")String userName);
public User add(@WebParam(name = "user")User user);
public String getUser();
}
package com.yun.service.User.impl;
import javax.jws.WebService;
import org.springframework.stereotype.Component;
import com.yun.bean.User;
import com.yun.service.User.UserService;
//@WebService(targetNamespace="http://User.service.yun.com/")
//@Component
@WebService(endpointInterface = "com.yun.service.User.UserService")
public class UserServiceImpl implements UserService {
public String sayHi(String userName) {
// TODO Auto-generated method stub
System.out.println("hello,"+userName);
return "hello,"+userName;
}
public User add(User user) {
// TODO Auto-generated method stub
return user;
}
public String getUser() {
// TODO Auto-generated method stub
return null;
}
}
<jaxws:endpoint id="user"
implementor="com.yun.service.User.impl.UserServiceImpl" address="/UserService"
publish="true" />
2.开发测试代码
<strong><span style="font-size:18px;">package com.yun.test;
import org.ksoap2.SoapEnvelope;
import org.ksoap2.serialization.SoapObject;
import org.ksoap2.serialization.SoapSerializationEnvelope;
import org.ksoap2.transport.HttpTransportSE;
import com.yun.bean.User;
public class TestAndroid {
public static void main(String[] args) {
//targetNamespace="http://User.service.yun.com/"
final String SERVICE_NS = "http://User.service.yun.com/";
final String SERVICE_URL = "http://localhost:8080/WebService/webservice/UserService";
//调用的方法
String methodName = "sayHi";
//创建httpTransportSE传输对象
HttpTransportSE ht = new HttpTransportSE(SERVICE_URL);
ht.debug = true;
//使用soap1.1协议创建Envelop对象
SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(SoapEnvelope.VER11);
//实例化SoapObject对象
SoapObject request = new SoapObject(SERVICE_NS, methodName);
/**
* 设置参数,参数名不一定需要跟调用的服务器端的参数名相同,只需要对应的顺序相同即可
* */
request.addProperty("userName", "刘云生");
//将SoapObject对象设置为SoapSerializationEnvelope对象的传出SOAP消息
envelope.bodyOut = request;
try{
//调用webService
ht.call(null, envelope);
//txt1.setText("看看"+envelope.getResponse());
if(envelope.getResponse() != null){
System.out.println("有返回");
SoapObject result = (SoapObject) envelope.bodyIn;
String name = result.getProperty(0).toString();
System.out.println("返回值 = "+name);
}else{
System.out.println("无返回");
}
}catch (Exception e) {
e.printStackTrace();
System.out.println(e.getMessage());
}
}
}
</span></strong>
3.测试结果