在web.xml里加入以下代码
<!-- Jersey 配置 -->
<servlet>
<servlet-name>JerseyServlet</servlet-name>
<servlet-class>com.sun.jersey.spi.spring.container.servlet.SpringServlet</servlet-class>
<init-param>
<param-name>com.sun.jersey.config.property.packages</param-name>
<!-- 系统启动时扫描的包的路径-->
<param-value>com.goodsoft</param-value>
</init-param>
</servlet>
<servlet-mapping>
<servlet-name>JerseyServlet</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
测试类
package com.goodsoft;
import java.io.InputStream;
import java.util.ArrayList;
import java.util.List;
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.core.Context;
import javax.ws.rs.core.MediaType;
import javax.ws.rs.core.MultivaluedMap;
import javax.ws.rs.core.Response;
import javax.ws.rs.core.UriInfo;
import com.sun.jersey.core.header.FormDataContentDisposition;
import com.sun.jersey.multipart.FormDataParam;
@Path("/test")
public class TestService {
/**
* http://localhost:8080/webservice/test
*/
@GET
@Produces(MediaType.TEXT_PLAIN)
public String helloWorld() {
String ret = "Hello World!";
return ret;
}
/**
* http://localhost:8080/webservice/test/userlist
*/
@Path("/userlist")
@GET
@Produces( { MediaType.APPLICATION_XML })
public List<User> getUsers() {
List<User> users = new ArrayList<User>();
for (long i = 1; i < 5; i++) {
User user = new User();
user.setUserId(i);
user.setUserName("yuhan" + i);
user.setNickName("supben" + i);
users.add(user);
}
return users;
}
// 解析path中的参数id 用@PathParam
/**
* http://localhost:8080/webservice/test/userinfo/1
*/
@Path("/userinfo/{id}")
@GET
@Produces( { MediaType.APPLICATION_XML })
public User getUserById(@PathParam("id") Long id) {
User user = new User();
user.setUserId(id);
user.setUserName("yuhan");
user.setNickName("supben");
return user;
}
/**
* http://localhost:8080/webservice/test/upload
* 有几个文件,就有几对参数,InputStream注解封装了文件的二进制流
* ,FormDataContentDisposition注解封装了对于文件的解析结果(包括文件名,文件后缀等) 演示一次获取多个文件的方法
*/
@POST
@Path("/upload")
@Consumes(MediaType.MULTIPART_FORM_DATA)
public Response upload(@FormDataParam("file1") InputStream in1, @FormDataParam("file1") FormDataContentDisposition fd1,
@FormDataParam("file2") InputStream in2, @FormDataParam("file2") FormDataContentDisposition fd2) {
System.out.println(fd1.getFileName() + "------");
FileUtils.writeToFile(in1, "d:/1.jpg");
FileUtils.writeToFile(in2, "d:/2.jpg");
return Response.ok().build();
}
/**
* http://localhost:8080/webservice/test/params/3/4?id=1&name=shen&age=3
* 演示一次获取多个path参数(跟在/后面的)和query参数(跟在?后面的) 的方法
*/
@GET
@Path("/params/{a}/{b}")
@Produces(MediaType.TEXT_PLAIN)
public String params(@Context UriInfo ui) {
MultivaluedMap<String, String> pathvalueMap = ui.getPathParameters();
MultivaluedMap<String, String> queryvalueMap = ui.getQueryParameters();
for (String s : pathvalueMap.keySet()) {
System.out.println("path参数名称为" + s + ",参数的值为" + pathvalueMap.get(s));
}
for (String s : queryvalueMap.keySet()) {
System.out.println("query参数名称为" + s + ",参数的值为" + queryvalueMap.get(s));
}
return "params method invoke success!";
}
/**
* http://localhost:8080/webservice/test/form演示获取form的全部参数的方法
*/
@POST
@Path("/form")
@Produces(MediaType.TEXT_PLAIN)
public String form(MultivaluedMap<String, String> formParams) {
for (String s : formParams.keySet()) {
System.out.println("form参数名称为" + s + ",参数的值为" + formParams.get(s));
}
return "form method invoke success!";
}
/**
* http://localhost:8080/webservice/test/formupload演示获取form的全部参数和上传的文件的方法
*/
@POST
@Path("/formupload")
@Consumes(MediaType.MULTIPART_FORM_DATA)
@Produces(MediaType.TEXT_PLAIN)
public String formupload(@FormDataParam("file") InputStream in, @FormDataParam("file") FormDataContentDisposition fd,
@FormDataParam("name") String name) {
System.out.println(name);
System.out.println(fd.getFileName() + "------");
FileUtils.writeToFile(in, "d:/3.jpg");
return "formupload method invoke success!";
}
}
分享到:
相关推荐
【标题】"Jersey RESTful WebService框架学习(一)" 在Web服务开发中,RESTful API已经成为主流,它强调资源的表示和交互,通过HTTP协议进行通信。Jersey是Java平台上的一个开源框架,专门用于构建RESTful服务,它是...
【基于Jersey搭建WebService框架】 在Java开发中,构建RESTful Web服务时,Jersey是一个常用的框架。它作为Java EE的一部分,提供了实现 Representational State Transfer (REST) 架构风格的工具集。本教程将围绕...
【SSH REST WS JAX-RS Jersey 小网站后台及Web Service接口详解】 SSH(Spring、Struts、Hibernate)是Java Web开发中常见的三层架构,它整合了Spring的依赖注入、Struts的MVC模式和Hibernate的对象关系映射,提供...
**基于REST的Jersey实现Web服务** REST(Representational State Transfer)是一种软件架构风格,用于构建Web服务。它强调简洁、可伸缩性和基于HTTP协议的设计。RESTful Web服务使用HTTP方法(如GET、POST、PUT、...
在标题中提到的 "jersey restful webservice 所需包2.22版" 指的是 Jersey 的 2.22 版本。这个版本可能包含了 Jersey 的核心库和其他相关的依赖,以支持 RESTful 服务的开发。REST(Representational State Transfer...
总结来说,"Jersey RESTful Webservice"项目提供了一个实际运行的示例,展示了如何使用Jersey框架构建RESTful服务。通过学习这个项目,开发者可以深入理解RESTful服务的原理,以及如何在Java环境中使用Jersey进行...
在压缩包文件"boa-webservice-v-0.1.2"中,很可能包含了使用Jersey v2.10构建的Web服务示例代码,可能包括了基础认证的实现、RESTful API的定义以及EclipseLink JPA的配置。通过深入研究这些代码,开发者可以学习...
**标题:“jersey restful webservice集成以及使用”** RESTful Web服务是一种广泛采用的Web服务设计风格,它遵循 Representational State Transfer(表述性状态转移)原则,通过HTTP协议提供服务。Jersey是Java...
在Java世界中,实现RESTful服务的一个常用框架就是Jersey。 Jersey是Sun Microsystems(现已被Oracle收购)开发的开源项目,它是JAX-RS(Java API for RESTful Web Services)规范的参考实现。JAX-RS为创建RESTful...
在IT行业中,RESTful WebService框架是开发网络应用的重要工具,Jersey作为Java平台上的一个开源框架,专门用于实现RESTful服务。本文将深入探讨如何巧妙利用Jersey框架解决文件上传时可能出现的乱码问题,同时也会...
使用Jersey创建XML,JSON格式的RESTful WebService的时候,要用到的jar库文件大集合。使用的时候只需要把这些文件放在WEB-INF\lib目录,并在Java Build Path中添加引用就可以了。
那么首先需要了解jersey和webservice的关系,捋顺webservice框架的各种实现,通过查阅相关博客,我个人总结webservice的结构图如下:通过上图,大概可以了解到webservice和jersey的关系了,然后我们需要了解RESTful...
本项目是使用Jersey框架和Tomcat服务器来构建RESTful WebService的一个实例,它提供了完整的配置和实现,对于学习和理解RESTful服务的开发具有很高的实用价值。 **Jersey框架**:Jersey是Java平台上的一个开源框架...
总之,"jersey-1.1.2 restful webservice"是一个用于构建RESTful服务的工具包,通过使用Jersey,开发者可以高效地构建出符合REST原则的Web服务,同时享受到Java平台的强大功能和灵活性。了解并掌握这些知识点,将有...
"Eclipse中使用Jersey和Tomcat构建RESTful WebService及其调用" RESTful Web服务简介 ----------------- RESTful Web服务是使用HTTP和REST原理实现的Web服务。REST 中最重要的概念是资源(resources),使用全球ID...
### Jersey和Tomcat构建RESTful WebService #### RESTful Web服务简介 REST(Representational State Transfer)是由HTTP规范1.0和1.1版的主要作者之一Roy Fielding在其2000年的博士论文中提出的。REST的核心思想...
标题中的"jersey+spring rest webservice web maven"是一个基于Java开发的RESTful Web服务架构,它结合了几个关键的技术组件。让我们深入探讨每个部分: 1. **Jersey**: Jersey是Java RESTful Web服务(JAX-RS)...
在本篇中,我们将深入探讨如何使用Maven搭建一个基于Jersey实现的RESTful Web服务。Jersey是Java EE平台下的一个开源项目,它提供了对JAX-RS(Java API for RESTful Web Services)规范的全面支持,让我们能够轻松...
描述中提到的“用Jersey写的移动端WebService接口”,意味着项目可能包含了使用Jersey构建的一系列API,这些接口设计为与移动设备进行交互,提供数据和服务。RESTful设计原则强调资源的表述状态转移,通过HTTP协议中...