简介:
WebService是应用程序之间相互调用的技术,遵循技术规范开发的不同应用程序之间可以相互调用。应用程序可以部署在不同操作系统上(例如:linux、Windows等主流系统),应用程序可以可以使用不同的语言编写(例如:Java、C#),不同操作系统或者不同语言的的webservice程序可以相互调用。 接下来我们基于JDK开发一个简单的WebService程序调用示例。
环境准备:
Windows7、JDK7、Eclipse4.4.2
步骤:
首先需要开发一个服务端代码,以下是代码结构:
在Eclipse中创建一个Web应用程序,程序名为:WebserviceServerProj,项目结构如下:
开发步骤如下:
1、创建一个实体类
package cn.com;
import java.util.Date;
/**
* @author xu.hongsheng
* @date 2017-09-30
*
*/
public class User {
private long userId;
private String userName;
private Date birthDay;
public long getUserId() {
return userId;
}
public void setUserId(long userId) {
this.userId = userId;
}
public String getUserName() {
return userName;
}
public void setUserName(String userName) {
this.userName = userName;
}
public Date getBirthDay() {
return birthDay;
}
public void setBirthDay(Date birthDay) {
this.birthDay = birthDay;
}
}
2、创建一个接口类
package cn.com;import java.util.ArrayList;
import java.util.HashMap;
import javax.jws.WebService;
/**
* @author xu.hongsheng
* @date 2017-09-30
* 该注解告诉应用UserService接口类为一个SEI服务
* (Service Endpoint Interface:服务端接口)
*/
@WebService
public interface UserService {
//新增用户调用
public void insert(User user);
//用户列表查询
public ArrayList<User> qryPageList(HashMap<String, Object> pramMap);
}
3、创建一个实现类
package cn.com;import java.util.ArrayList;
import java.util.Date;
import java.util.HashMap;
import javax.jws.WebService;
/**
* @author xu.hongsheng
* @date 2017-09-30
* endpointInterface:指定端口服务类,该类必须加注解@WebService
* serviceName:指定端口服务的名称
*/
@WebService(endpointInterface="cn.com.UserService",
serviceName="UserServiceImpl")
public class UserServiceImpl implements UserService{
public void insert(User user) {
//输出客户端传到服务端的生日
System.out.println("客户端insert方法传入的参数:"+user.getBirthDay());
}
public ArrayList<User> qryPageList(HashMap<String,Object> pramMap) {
//输出客户端传到服务端的用户名
System.out.println("客户端qryPageList方法传入的参数:"+pramMap.get("userName"));
///服务端向客户端返回数据
ArrayList<User> list = new ArrayList<User>();
User user = new User();
user.setUserName("lucy");
user.setBirthDay(new Date());
list.add(user);
return list;
}
}
4、服务发布类
package cn.com;
import javax.xml.ws.Endpoint;
/**
* @author xu.hongsheng
* @date 2017-09-30
* 功能描述:启动服务端
*/
public class StartServer {
public static void main(String[] args) {
UserService userService = new UserServiceImpl();
//调用EndPoint的publish方法发布服务, 第一个服务为地址 ,第二个参数就是服务的提供者
//http://127.0.0.1:8981/user?wsdl
Endpoint.publish("http://127.0.0.1:8981/user", userService);
System.out.println("WebService启动成功了");
}
}
5、运行StartServer,在浏览器中访问地址:http://127.0.0.1:8981/user?wsdl,如果服务成功则如下图: