webservice和RestFul的区别
RESTful WebService和web service的区别
RESTful 风格的 webservice 越来越流⾏了, sun 也推出了 RESTful WebService 的官⽅规范: JAX-RS ,全称:Java API for RESTful WebService。该规范定义了⼀系列的注解
RESTful 简化了 web service 的设计,它不再需要 wsdl ,也不再需要 soap 协议,⽽是通过最简单的 http 协议传输数据 ( 包括 xml 或 json) 。既简化了设计,也减少了⽹络传输量(因为只传输代表数据的 xml 或 json ,没有额外的 xml 包装)。
下⾯为⼤家介绍使⽤ cxf 开发 RESTful WebService
Cxf2.7 实现了⼤部分的 jax -rs 规范,从 cxf3.0 开始实现 jax-rs 的全套规范
服务端
Spring3 +cxf 开发 RESTfulweb service
服务端 jar 包
上⾯的 jettison jar 包是⽤来将 jaxb 扩展为为 json ⽀持的 jar
实体类
b.cxf.server;
l.bind.annotation.XmlRootElement; //⼀定要使⽤XmlRootElement注解进⾏标注
@XmlRootElement(name="user")
public class User {
private String id;
private String name;
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
l.bind.annotation.XmlRootElement; //⼀定要使⽤XmlRootElement注解进⾏标注
@XmlRootElement(name="user")
public class User {
private String id;
private String name;
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
WebService 接⼝
@Path("/userservice/")
public interface IMyService {
@Path("/addUser/")
@POST
Response addUser(User user);
@Path("/delUser/{id}/")
@DELETE
Response delUser(@PathParam("id") String id);
@Path("/updateUser/")
@PUT
Response updateUser(User user);
@Path("/getUserById/{id}/")
@GET
@Produces("application/json")//返回json数据格式
User getUserById(@PathParam("id") String id);
@Path("/")
@GET
@Produces("application/json")//返回json数据格式
List<User> findAllUsers();
}
("/userservice/")
public interface IMyService {
@Path("/addUser/")
@POST
Response addUser(User user);
@Path("/delUser/{id}/")
@DELETE
Response delUser(@PathParam("id") String id);
@Path("/updateUser/")
@PUT
Response updateUser(User user);
@Path("/getUserById/{id}/")
@GET
@Produces("application/json")//返回json数据格式
User getUserById(@PathParam("id") String id);
@Path("/")
@GET
@Produces("application/json")//返回json数据格式
List<User> findAllUsers();
}
WebService 实现类
public class MyServiceImpl implements IMyService {
private HashMap<String, User> users = new HashMap<String,User>();
public MyServiceImpl(){
init();
}
public Response addUser(User user) {
users.Id(), user);
System.out.println("添加⽤户成功");
System.out.println(users.size());
System.out.("2").getName());
return Response.ok().build();
}
public Response delUser(String id) {
System.out.println(users.size());
return Response.ok().build();
}
public Response updateUser(User user) {
users.Id(), user);
System.out.("1").getName());
return Response.ok().build();
}
public User getUserById(String id) {
(id);
}
private void init(){
User user = new User();
user.setId("1");
user.setName("温欢");
users.Id(), user);
}
public List<User> findAllUsers() {
List<User> userlist = new ArrayList<User>();
userlist.("1"));
return userlist;
}
}
class MyServiceImpl implements IMyService {
private HashMap<String, User> users = new HashMap<String,User>();
public MyServiceImpl(){
init();
}
public Response addUser(User user) {
users.Id(), user);
System.out.println("添加⽤户成功");
System.out.println(users.size());
System.out.("2").getName());
return Response.ok().build();
}
public Response delUser(String id) {
System.out.println(users.size());
return Response.ok().build();
return Response.ok().build();
}
public Response updateUser(User user) {
users.Id(), user);
System.out.("1").getName());    return Response.ok().build();
}
public User getUserById(String id) {
(id);
}
private void init(){
User user = new User();
user.setId("1");
user.setName("温欢");
users.Id(), user);
}
public List<User> findAllUsers() {
如何生成webservice客户端
List<User> userlist = new ArrayList<User>();    userlist.("1"));
return userlist;
}
}
spring -l配置⽂件