@javax.ws.rs Webservice注解

用于webservice。

1.路径

@javax.ws.rs.Path

标识要请求的资源类或资源方法的uri路径。
例,@Path("animal"),表示下一层路径是animal时要处理的事务。
@Path("{species}")这种带大括号的表示方法,表示下一层路径会被参数化,配合@PathParam("species")使用可以赋值给函数的参数。

对于代码:

@Path("animal")
public class Animal {
	public String species,name;
	public int age;
	public static Animal animal=new Animal();

	@GET
	@Path("{species}")
	@Produces(MediaType.APPLICATION_JSON)
	public Animal wsAnimal(@PathParam("species") String species,
			@QueryParam("name") String name,
			@QueryParam("age") int age
			){
		animal.species=species;
		animal.name=name;
		animal.age=  age==0?2:age;
		return animal;
	}
}

效果见图1-1:

图 1-1 @Path 用法示例

2.从报文数据到方法参数

@javax.ws.rs.PathParam

将uri中指定的路径参数绑定到资源方法参数,资源类的字段,或资源类的bean属性。

@javax.ws.rs.QueryParam

将http请求的Query参数赋值给函数的参数。

@javax.ws.rs.DefaultValue

设置@QueryParam参数的默认值。如果@QueryParam没有接收到值,就使用默认值。比如:

public String fun(@DefaultValue("description") @QueryParam("desc") String desc){...}

@javax.ws.rs.FormParam

将http请求的Form表单中的参数赋值给函数的参数。

@avax.ws.rs.Context

用于获取环境信息。一个获取客户端ip的例子见下:

@Path("util")
public class Util {

	@Path("getClientIp")
	@GET
	@Produces(MediaType.TEXT_PLAIN)
	public String getClientIp(@Context HttpServletRequest request){
		return request.getRemoteAddr();
	}
}

3.http方法

@javax.ws.rs.GET
表示此方法响应一个HTTP GET请求。

@javax.ws.rs.POST
表示此方法响应一个HTTP POST请求。

@javax.ws.rs.PUT

通常用来更新数据。

@javax.ws.rs.DELETE

通常用来删除数据。

4.返回数据类型

@javax.ws.rs.Produces
设置Http返回报文,报文体的内容类型。
取值为 javax.ws.rs.core.MediaType.XXX。常用的有:

MediaType.APPLICATION_JSON
MediaType.TEXT_PLAIN

时间: 2024-09-14 17:49:39

@javax.ws.rs Webservice注解的相关文章

javax.ws.rs

问题描述 最近写webservice的时候适用了javax.ws.rs的注解但是使用post的时候有点尽人意,不知道有木有哪位大神能介绍下这个类下面的注解功能的

java javax.annotation.Resource注解的详解_java

java 注解:java javax.annotation.Resource  当我们在xml里面为类配置注入对象时,会发现xml文件会越来越臃肿,维护起来很麻烦.这时候我们可以使用注解这种机制来为类配置注入对象.        Java为我们提供了 javax.annotation.Resource这个注解.        spring框架提供了org.springframework.beans.factory.annotation.Autowired.       一般情况下我们使用 jav

spring注解-service利用注解注入,会空指针异常。而用getBean方式则可以获取到service。

问题描述 service利用注解注入,会空指针异常.而用getBean方式则可以获取到service. spring配置文件如下: <?xml version=""1.0"" encoding=""UTF-8""?> xmlns:context=""http://www.springframework.org/schema/context"" xmlns:xsi="

java JAX-RS实现rest风格的webservice

JAX-RS (Java API for XML-Restful Web Services) 介绍 JAX-RS 是基于Servlet构建的. 描述请求处理的过程: client request----->JAX-RS servlet----->JAX-RS application (e.g., predictions3) Tomcat/Jetty中部署 JAX-RS 的web.xml 如下: <?xml version="1.0" encoding="UT

cxf2.7.0做RestFul时启动一直出问题

问题描述 最近使用cxf2.7.0做一个简单的restful例子,郁闷一直都在启动时出错,检查配置没发现有什么问题,大家帮忙看一下. 出现的错误如下:2013-3-11 15:25:33 org.apache.catalina.core.AprLifecycleListener init信息: The APR based Apache Tomcat Native library which allows optimal performance in production environments

用 Jersey 2 和 Spring 4 构建 RESTful web service

本文介绍了如何通过 Jersey 框架优美的在 Java 实现了 REST 的 API.CRUD 的 操作存储在 MySQL 中 1. 示例 1.1 为什么 Spring 可以对于 REST 有自己的实现(见 https://spring.io/guides/tutorials/rest/). 但本文展示的是用 "官方" 的 方法来实现 REST ,即使用 Jersey. 1.2 它是做什么的? 管理 资源. REST API 将允许创建.检索.更新和删除这样的资源. 1.3 架构及技

jersey-Jersey+Spring程序中如何实现拦截器

问题描述 Jersey+Spring程序中如何实现拦截器 如题,项目中采用了Jersey+Spring实现Restful webservice,现在要对接口进行身份验证,方案已经确定,但如何实现类似于struts或SpringMVC的interceptor的效果?对所有请求进行身份验证1,备选方案是利用J2EE的filter2,想通过Spring的AOP来实现,切面是Jersey的Resource,但怎样注入HttpServletRequest呢? 解决方案 Jersey本身就提供了Reques

Java微服务开发指南 -- 使用Dropwizard构建微服务

使用Dropwizard构建微服务     Dropwizard的历史要早于Spring Boot和WildFly Swarm,它最早是在2011.12发布的v0.1.0版本,在本文编写的过程中,它已经发布了v0.9.2版本,而v1.0.0版本也在准备中了.Dropwizard是Coda Hale在Yammer公司时创立的,它旨在提升公司分布式系统的架构(现在叫:微服务).虽然它最早被用来构建REST Web 服务,而现在它具备了越来越多的功能,但是它的目标始终是作为轻量化.为生产环境准备且容易

较好的8个 Java RESTful 框架

 过去的每一年,涌现出越来越多的Java框架.就像JavaScript,每个人都认为他们知道一个好的框架的功能应该是怎么样的.在将来的项目中使用哪个 Java RESTful框架完全取决于你当前的需求.为了便于你取舍,我将列出最突出的框架功能,希望这能节省一些你的时间.   DROPWIZARD 诞生时间: 2011 评分: 4.5/5 Dropwizard 提供了稳定成熟的Java库, 并封装成一个简单的轻量级的包. Dropwizard 介于框架和库之间.它提供了一个开发web应用程序的全部