使用cxf 发布 jax-rs 风格webservice 。并客户端测试。
来源:互联网 发布:linux本地socket 编辑:程序博客网 时间:2024/05/29 05:04
详细介绍:http://www.ibm.com/developerworks/cn/java/j-lo-jaxrs/
1、定义一个User对象
package com.zf.test;import java.util.Date;import javax.xml.bind.annotation.XmlRootElement;@XmlRootElement(name="User") public class User { private long id; private String name; private Date birthday; public long getId() { return id; } public void setId(long id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } public Date getBirthday() { return birthday; } public void setBirthday(Date birthday) { this.birthday = birthday; } }
2、编写Service接口
package com.zf.test;import javax.ws.rs.Consumes;import javax.ws.rs.GET;import javax.ws.rs.POST;import javax.ws.rs.Path;import javax.ws.rs.PathParam;import javax.ws.rs.Produces;import javax.ws.rs.QueryParam;import javax.ws.rs.core.MediaType;@Path(value="/user") @Produces(MediaType.TEXT_XML) //指定返回给客户端的类型@Consumes(MediaType.TEXT_XML) //接收客户端来的类型public interface IUserService { @GET @Path(value="/info/{id}")public User getUser(@PathParam("id") long id,@QueryParam("name") String name); @GET @Path(value="/info2") public User getUser(@QueryParam("name") String name); @POST@Path(value = "/info3")public User getUser(User user); }
3、实现Service类
package com.zf.test;import java.text.ParseException;import java.text.SimpleDateFormat;public class UserServiceImpl implements IUserService { public User getUser(long id,String name) { User user=new User(); user.setId(id); user.setName(name); try { user.setBirthday(new SimpleDateFormat("yyyy-MM-dd").parse("1987-02-01")); } catch (ParseException e) { e.printStackTrace(); } return user; } public User getUser(String name) { User user=new User(); user.setId(1); user.setName(name); try { user.setBirthday(new SimpleDateFormat("yyyy-MM-dd").parse("1985-03-01")); } catch (ParseException e) { e.printStackTrace(); } return user; }@Overridepublic User getUser(User user) {System.out.println("getUser");if(user != null)System.out.println( user.getId() + " " + user.getName() + " " + user.getBirthday().toLocaleString());elseSystem.out.println("user is null!");return user;} }
4、编写客户端
可以直接在浏览器中输入 http://localhost:9999/user/info/3?name=is_zhoufeng 访问。 在浏览器中会输出如下结果:
<User><birthday>1987-02-01T00:00:00+08:00</birthday><id>3</id><name>is_zhoufeng</name></User>
(下面的操作之前,应该在客户端生成对应的User类型。可以在服务端提供相应的xsd文件。给客户端生成。我这里直接将User复制过去了)
首先根据服务端 编写客户端Service接口
package com.zf.vo;import javax.ws.rs.Consumes;import javax.ws.rs.GET;import javax.ws.rs.POST;import javax.ws.rs.Path;import javax.ws.rs.Produces;import javax.ws.rs.core.MediaType;@Path("/user")@Produces(MediaType.TEXT_XML) @Consumes(MediaType.TEXT_XML)public interface UserService {@POST@Path("/info3")User info(User user);@GET @Path(value="/info2") User info2(String name) ;}
访问GET方法
package com.zf.vo;import org.apache.cxf.jaxrs.client.WebClient;public class RestClient {public static void main(String[] args) { WebClient client=WebClient.create("http://127.0.0.1:5555/user/info/3?name=is_zhoufeng");User user=(User)client.accept("text/xml").get(User.class); System.out.println(user.getName()); } }
访问POST方法
package com.zf.vo;import java.util.Date;import org.springframework.context.ApplicationContext;import org.springframework.context.support.ClassPathXmlApplicationContext;public class PostRestClient {public static void main(String[] args) {ApplicationContext cxt = new ClassPathXmlApplicationContext(new String[]{"applicationContext.xml","jaxrs-https.xml"});UserService countriesService = (UserService)cxt.getBean("userService");User user = new User();user.setBirthday(new Date());user.setId(3);user.setName("is_zhoufeng"); User u = countriesService.info(user);System.out.println(u.getId()); System.out.println(u.getName());System.out.println(u.getBirthday().toLocaleString());}}
- 使用cxf 发布 jax-rs 风格webservice 。并客户端测试。
- 使用cxf、JAX-RS编写restful风格的webservice
- 基于CXF的JAX-WS、JAX-RS(RESTful)的webService
- 基于CXF的JAX-WS、JAX-RS(RESTful)的webService
- 基于CXF的JAX-WS、JAX-RS(RESTful)的webService
- 基于CXF的JAX-WS、JAX-RS(RESTful)的webService
- 使用CXF框架,发布webservice服务,并使用客户端远程访问webservice
- CXF发布WebService使用SoapUI测试
- CXF+Maven+Eclipse开发基于jax-rs规范的WebService
- JAX-RS客户端WebClient的使用教程
- CXF 发布WebService - 客户端调用
- Spring整合CXF,发布RSETful 风格WebService--编写客户端代码,调用RESTful WebService
- 使用CXF发布webService
- 使用CXF发布WebService
- 框架 day64 WebService(注解),CXF框架(jax-ws,Jax-rs,与spring整合)
- WebService(注解),CXF框架(jax-ws,Jax-rs,与spring整合)
- CXF WebService 7 - Spring整合CXF,发布RSETful 风格WebService
- cxf jax-rs client 笔记。
- AcdbTable 例子学习笔记
- AdRotator
- 七秘诀工作效率与薪水翻番
- 一个和worker_connections参数相关的Nginx系统问题及解决办法
- close_wait状态和time_wait状态
- 使用cxf 发布 jax-rs 风格webservice 。并客户端测试。
- ios中复杂实体类对象的json序列化
- 优化的内存访问 TCMalloc
- 增加最大 TCP/IP 可用端口数
- MS INET控件在Debug下的断言错误
- Ubuntu下如何修改文件的属性
- Impala介绍博客相关问答
- 第二次调用LocalActivityManager startActivity返回null解决方案
- JDK各版本特性