`
supben
  • 浏览: 329143 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

jersey webservice

阅读更多
在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!";
	}
}

3
0
分享到:
评论
3 楼 a6985600 2015-08-02  
看看看看看
2 楼 cdd62381435 2013-12-16  
可以给一个完整的dome吗?chen19871128@sina.cn
谢谢
1 楼 hotwater1015 2011-12-13  
@Path("getUsers")
  @Path("getUserById")

这种风格 rest?  

相关推荐

    Jersey RESTful WebService框架学习(一)

    【标题】"Jersey RESTful WebService框架学习(一)" 在Web服务开发中,RESTful API已经成为主流,它强调资源的表示和交互,通过HTTP协议进行通信。Jersey是Java平台上的一个开源框架,专门用于构建RESTful服务,它是...

    基于jersey搭建webservice框架

    【基于Jersey搭建WebService框架】 在Java开发中,构建RESTful Web服务时,Jersey是一个常用的框架。它作为Java EE的一部分,提供了实现 Representational State Transfer (REST) 架构风格的工具集。本教程将围绕...

    ssh rest ws jax-rs jersey 做的小网站后台及web service接口

    【SSH REST WS JAX-RS Jersey 小网站后台及Web Service接口详解】 SSH(Spring、Struts、Hibernate)是Java Web开发中常见的三层架构,它整合了Spring的依赖注入、Struts的MVC模式和Hibernate的对象关系映射,提供...

    基于rest的jersey实现webservice

    **基于REST的Jersey实现Web服务** REST(Representational State Transfer)是一种软件架构风格,用于构建Web服务。它强调简洁、可伸缩性和基于HTTP协议的设计。RESTful Web服务使用HTTP方法(如GET、POST、PUT、...

    jersey restful webservice 所需包2.22版

    在标题中提到的 "jersey restful webservice 所需包2.22版" 指的是 Jersey 的 2.22 版本。这个版本可能包含了 Jersey 的核心库和其他相关的依赖,以支持 RESTful 服务的开发。REST(Representational State Transfer...

    Jersey Restful Webservice

    总结来说,"Jersey RESTful Webservice"项目提供了一个实际运行的示例,展示了如何使用Jersey框架构建RESTful服务。通过学习这个项目,开发者可以深入理解RESTful服务的原理,以及如何在Java环境中使用Jersey进行...

    基于jersey v2.10的webservice核心框架

    在压缩包文件"boa-webservice-v-0.1.2"中,很可能包含了使用Jersey v2.10构建的Web服务示例代码,可能包括了基础认证的实现、RESTful API的定义以及EclipseLink JPA的配置。通过深入研究这些代码,开发者可以学习...

    jersey restful webservice集成以及使用

    **标题:“jersey restful webservice集成以及使用”** RESTful Web服务是一种广泛采用的Web服务设计风格,它遵循 Representational State Transfer(表述性状态转移)原则,通过HTTP协议提供服务。Jersey是Java...

    java+restful+Jersey+webservice 远程调用

    在Java世界中,实现RESTful服务的一个常用框架就是Jersey。 Jersey是Sun Microsystems(现已被Oracle收购)开发的开源项目,它是JAX-RS(Java API for RESTful Web Services)规范的参考实现。JAX-RS为创建RESTful...

    使用Jersey创建WebService要用到的jar库文件

    使用Jersey创建XML,JSON格式的RESTful WebService的时候,要用到的jar库文件大集合。使用的时候只需要把这些文件放在WEB-INF\lib目录,并在Java Build Path中添加引用就可以了。

    webservice框架jersey简单总结

    那么首先需要了解jersey和webservice的关系,捋顺webservice框架的各种实现,通过查阅相关博客,我个人总结webservice的结构图如下:通过上图,大概可以了解到webservice和jersey的关系了,然后我们需要了解RESTful...

    巧用 Jersey RESTful WebService框架解决文件上传乱码

    在IT行业中,RESTful WebService框架是开发网络应用的重要工具,Jersey作为Java平台上的一个开源框架,专门用于实现RESTful服务。本文将深入探讨如何巧妙利用Jersey框架解决文件上传时可能出现的乱码问题,同时也会...

    使用Jersey和Tomcat搭建的RESTful WebService

    本项目是使用Jersey框架和Tomcat服务器来构建RESTful WebService的一个实例,它提供了完整的配置和实现,对于学习和理解RESTful服务的开发具有很高的实用价值。 **Jersey框架**:Jersey是Java平台上的一个开源框架...

    jersey-1.1.2 restful webservice

    总之,"jersey-1.1.2 restful webservice"是一个用于构建RESTful服务的工具包,通过使用Jersey,开发者可以高效地构建出符合REST原则的Web服务,同时享受到Java平台的强大功能和灵活性。了解并掌握这些知识点,将有...

    Eclipse中使用Jersey和Tomcat构建RESTful WebService及其调用

    "Eclipse中使用Jersey和Tomcat构建RESTful WebService及其调用" RESTful Web服务简介 ----------------- RESTful Web服务是使用HTTP和REST原理实现的Web服务。REST 中最重要的概念是资源(resources),使用全球ID...

    Jersey和Tomcat构建RESTful WebService

    ### 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

    标题中的"jersey+spring rest webservice web maven"是一个基于Java开发的RESTful Web服务架构,它结合了几个关键的技术组件。让我们深入探讨每个部分: 1. **Jersey**: Jersey是Java RESTful Web服务(JAX-RS)...

    Jersey RESTful WebService框架学习(八)maven搭建

    在本篇中,我们将深入探讨如何使用Maven搭建一个基于Jersey实现的RESTful Web服务。Jersey是Java EE平台下的一个开源项目,它提供了对JAX-RS(Java API for RESTful Web Services)规范的全面支持,让我们能够轻松...

    Jersey Server

    描述中提到的“用Jersey写的移动端WebService接口”,意味着项目可能包含了使用Jersey构建的一系列API,这些接口设计为与移动设备进行交互,提供数据和服务。RESTful设计原则强调资源的表述状态转移,通过HTTP协议中...

Global site tag (gtag.js) - Google Analytics