一、Jersey, 一个Java规范下REST风格Web Service开发框架,不同系统之间,数据之间的传输。
二、搭建Jersey-1.18环境,不集成任何框架。三个步骤:
(1)、创建Web项目,引入jar,如:这些jar自己去下载
(2)、配置Web.xml,如:
(3)、写Restful服务类与VO类,如:
(4)、运行测试类,入参为JSON,出参为JSON,若能正常打印,则说明成功了。
[b]若有不明白的地方,可以加我QQ 251693481,竭诚为你解答。[/b]
二、搭建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,若能正常打印,则说明成功了。
[b]若有不明白的地方,可以加我QQ 251693481,竭诚为你解答。[/b]