【转】@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;
- }
- }
@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){...}
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();
- }
- }
@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
【转】@javax.ws.rs Webservice注解的更多相关文章
- The type javax.ws.rs.core.MediaType cannot be resolved. It is indirectly referenced from required .class files
看到了http://stackoverflow.com/questions/5547162/eclipse-error-indirectly-referenced-from-required-clas ...
- SSLv3协议、TLSv1.2协议配置不对导致javax.ws.rs.ProcessingException: java.net.SocketException: Connection reset
SSl:Secure Sockets Layer 安全套接层 TLS:Transport Layer Security传输层安全 是为网络通信提供安全及数据完整性的一种安全协议.TLS与SSL在传输层 ...
- 解决 jersey javax.ws.rs.core.UriBuilder.fromUri(UriBuilder.java:119)
检查是否Jar冲突 保留一个jersey-server-*.jar
- 使用Grizzy+Jersey搭建一个RESTful框架()报错Exception in thread "main" java.lang.AbstractMethodError: javax.ws.rs.core.UriBuilder.uri(Ljava/lang/String;)Ljavax/ws/rs/core/UriBuilder;
报错的类涉及UriBuilder,我搜索类发现, 这个类存在于两个包中,我在baidu的时候,也有人提到是jar包冲突,我就删除了 这个依赖,问题解决了. 环境搭建过程请见地址https://blog ...
- WebService基础入门 CXF(WS + RS)
一.基本介绍 Web Services是一个软件接口,它描述了一组可以在网络上通过标准化的 XML 消息传递访问的操作.它使用基于 XML 语言的协议来描述要执行的操作或者要与另一个 Web 服务交换 ...
- Web Service进阶(四)WebService注解
@WebService 1.serviceName: 对外发布的服务名,指定 Web Service 的服务名称:wsdl:service.缺省值为 Java 类的简单名称 + Service.(字符 ...
- Javax ws 01
1 EndPoint发布服务 package com.gosaint.provider; import javax.jws.WebService; /** * @Authgor: gosaint * ...
- WebService注解总结
@WebService 1.serviceName: 对外发布的服务名,指定 Web Service 的服务名称:wsdl:service.缺省值为 Java 类的简单名称 + Service.(字符 ...
- WebService注解汇总
Web Service 元数据注释(JSR 181) @WebService 1.serviceName: 对外发布的服务名,指定 Web Service 的服务名称:wsdl:service.缺省值 ...
随机推荐
- Android实现蓝牙耳机连接
代码地址如下:http://www.demodashi.com/demo/13259.html 前言 讲讲android对于蓝牙耳机连接技术的实现 今天涉及的内容有: 流程讲解 新建广播Bluetoo ...
- Android Camera 使用小结。两种方法:一是调用系统camera app,二是自己写camera程序。
源文链接:http://www.cnblogs.com/franksunny/archive/2011/11/17/2252926.html Android Camera 使用小结 Android手机 ...
- LightOJ 1070 - Algebraic Problem 矩阵高速幂
题链:http://lightoj.com/volume_showproblem.php?problem=1070 1070 - Algebraic Problem PDF (English) Sta ...
- Rational Rose2007具体安装步骤
学习了UML.那么Rational rose绘图软件当然就是不可缺少的了. 我的电脑是win7 64位的系统.以下的链接是安装软件以及破解方法.该软件是BIN格式的.也就是镜像文件.须要安装一个虚拟驱 ...
- MongoDB安装、CURD增改查删操作、应用场景
NoSQL(NoSQL = Not Only SQL ),意即"不仅仅是SQL".非关系型的数据存储 MongoDB 是一个基于分布式文件存储的数据库.由 C++ 语言编写.旨在为 ...
- Atitit. Js 冒泡事件阻止 事件捕获 事件传递 事件代理
Atitit. Js 冒泡事件阻止 事件捕获 事件传递 事件代理 1. 事件冒泡1 2. 事件捕获1 3. 同时支持了事件捕获阶段和事件冒泡阶段ddEventListener的第三个参数1 ...
- 经常使用的Hql语句
// HQL: Hibernate Query Language. // 特点: // >> 1,与SQL类似.SQL中的语法基本上都能够直接使用. // >> 2.SQL查询 ...
- 21. Merge Two Sorted Lists【easy】
21. Merge Two Sorted Lists[easy] Merge two sorted linked lists and return it as a new list. The new ...
- Android-X86 VirtualBox 安装安卓后的一些设置
可以用虚拟机设置双显卡,一个用于调试,一个用于连接外网 一个桥接一个host only 安卓Home键 -> Win键 安装返回键 -> ESC键 ALT + F1 调出管理员控制台 AL ...
- C指针类型小结
要理解复杂的指针类型其实很简单,一个类型里会出现很多运算符,它们也像普通表达式一样,有优先级. 原则: 从变量名开始,根据运算符优先级结合,一步一步分析. 下面让我们先从简单的类型开始慢慢分析吧: i ...