springmvc下Jersey 搭建RESTful服务

本文详细介绍了如何在Spring MVC环境下整合并配置Jersey来搭建RESTful服务,包括整合步骤、配置过程以及编写和测试Hello World示例。
摘要由CSDN通过智能技术生成

1.整合

jersey所需要的开发包下载: https://jersey.java.net/
解压jaxrs-ri-2.22.1文件,得到以下目录


将解压文件夹lib目录的jar文件复制到项目的WEB-INF/lib目录中,ext目录中的jar包根据自己所需  或者console报错 引入
这是我的项目的lib目录


2.配置

配置web.xml

<!-- REST配置 -->
	<servlet>
		<servlet-name>jerseyServlet</servlet-name>
		<servlet-class>org.glassfish.jersey.servlet.ServletContainer</servlet-class>
		<init-param>
			<param-name>javax.ws.rs.Application</param-name>
			<param-value>com.znie.mypro.service.RestApp</param-value>
		</init-param>
		<load-on-startup>1</load-on-startup>
	</servlet>
	<servlet-mapping>
		<servlet-name>jerseyServlet</servlet-name>
		<url-pattern>/service/*</url-pattern>
	</servlet-mapping>
	<!-- REST配置 结束 -->

com.znie.mypro.service.RestApp文件  指定服务类所在的包
package com.znie.mypro.service;

import javax.ws.rs.ApplicationPath;

import org.glassfish.jersey.server.ResourceConfig;


@ApplicationPath("/")
public class RestApp  extends ResourceConfig{
	
	public RestApp(){
		// 服务类所在的包路径
		packages("com.znie.mypro.service");
	}

}

3.编写测试

编写hello测试

package com.znie.mypro.service;

import java.util.HashMap;
import java.util.Map;

import javax.ws.rs.Consumes;
import javax.ws.rs.GET;
import javax.ws.rs.Path;
import javax.ws.rs.Produces;
import javax.ws.rs.QueryParam;
import javax.ws.rs.core.MediaType;

import com.alibaba.fastjson.JSON;

@Path("/hello")
public class HelloService {
	
	@GET
	@Path("/index")
	@Produces(MediaType.APPLICATION_JSON)
	public String hello() {
		Map m = new HashMap();
		m.put("hello","world");
		m.put("hello2","world");
		return JSON.toJSONString(m);
	}
	
	@GET
	@Path("/post")
	@Produces(MediaType.APPLICATION_JSON)
	@Consumes(MediaType.APPLICATION_JSON)
	public String post(@QueryParam("test")String test) {
		Map<String,String> m = new HashMap<String,String>();
		m.put("test",test);
		m.put("hello2","world");
		return JSON.toJSONString(m);
	}
}

main测试

package com.znie.mypro.service;

import javax.ws.rs.client.Client;
import javax.ws.rs.client.ClientBuilder;
import javax.ws.rs.client.Entity;
import javax.ws.rs.client.WebTarget;
import javax.ws.rs.core.Response;

public class HelloClient {
	public static void main(String[] args) {
		try {
			Client client = ClientBuilder.newClient();

			WebTarget target = client
					.target("http://localhost:8081/mypro/service/hello")
					.path("/post").queryParam("test", "111");

			Response res = target.request().accept("application/json").get();

			if (res.getStatus() != 200) {
				throw new RuntimeException("Failed : HTTP error code : "
						+ res.getStatus());
			}
			String output = res.readEntity(String.class);

			System.out.println(res.getStatus() + "\n……Output from Server……");
			System.out.println(output);
		} catch (Exception e) {
			e.printStackTrace();
		}
	}
}



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值