二、搭建Jersey-1.18环境,不集成任何框架。三个步骤:
(1)、创建Web项目,引入jar,如:这些jar自己去下载
asm-3.1.jar jersey-apache-client-1.18.jar jersey-atom-abdera-1.18.jar(不是必须) jersey-client-1.18.jar jersey-core-1.18.jar jersey-json-1.18.jar jersey-multipart-1.18.jar(不是必须) jersey-server-1.18.jar jersey-servlet-1.18.jar jersey-spring-1.18.jar(不是必须) fastjson-1.1.26.jar(不是必须)
(2)、配置Web.xml,如:
<!-- jersey servlet --> <servlet> <servlet-name>Jersey Web Application</servlet-name> <servlet-class>com.sun.jersey.spi.spring.container.servlet.SpringServlet</servlet-class> <!-- param-value 指定某个包目录下的类是restful服务类,可用逗号分隔,写多个目录 --> <init-param> <param-name>com.sun.jersey.config.property.packages</param-name> <param-value>com.zj.ec.wechat.member.controller</param-value> </init-param> <init-param> <param-name>com.sun.jersey.api.json.POJOMappingFeature</param-name> <param-value>true</param-value> </init-param> <load-on-startup>1</load-on-startup> </servlet> <servlet-mapping> <servlet-name>Jersey Web Application</servlet-name> <url-pattern>/rs/*</url-pattern> </servlet-mapping>
(3)、写Restful服务类与VO类,如:
/** * 会员管理类, Restful服务接口类 * @author Administrator * */ @Path("memberManage") public class MemberControllerRestful implements Serializable{ private static final long serialVersionUID = 1L; private Logger logger = LoggerFactory.getLogger(AreaController.class); @Autowired private MemberService memeberService; @POST @Path("/login") @Consumes(value={"application/json"}) @Produces(value={"application/json"}) public String login(String in_json, @Context HttpServletResponse response) { logger.info("login method input param: " + in_json); System.out.println("入参json = " + in_json); Member member = JSON.parseObject(in_json, Member.class); String aa = memeberService.update(member); Result result = new Result(); String out_json = JSON.toJSONString(""); response.setCharacterEncoding("utf-8"); System.out.println("出参json = " + out_json); return out_json; } }
/**必须注解@XmlRootElement 否则json与java类不能相互转换 */ @XmlRootElement public class Member { // 会员ID private String memberID; // 会员号 private String memberNO;
/** 测试类,只写了测试POST请求的方法 */ public class TestMember { static String member_url = "http://localhost:8080/ec_wechat/rs/memberManage"; static String member_url_30 = "http://172.16.12.30:8099/jaxrs/memberManage"; /** * @param args */ public static void main(String[] args) { login(); } public static void login(){ URI u; try { u = new URI(member_url + "/login"); MultivaluedMapImpl params = new MultivaluedMapImpl(); //Login login = new Login(); Member vo = new Member(); vo.setName("start"); vo.setPassword("***"); params.add("vo", vo); Client client = Client.create(); WebResource resource = client.resource(u); String response = resource.entity(vo, MediaType.APPLICATION_JSON).post(String.class); System.out.println(response);// json格式数据 } catch (URISyntaxException e) { e.printStackTrace(); } } }
(4)、运行测试类,入参为JSON,出参为JSON,若能正常打印,则说明成功了。
若有不明白的地方,可以加我QQ 251693481,竭诚为你解答。