javax.?ws.?rs

public class RestJaxRsServer {

    public static void main(String[] args) throws Exception {
        Component component = new Component();
        component.getServers().add(Protocol.HTTP, 8009);
        component.getDefaultHost().attach(new RestJaxRsApplication(null));
        component.start();

        System.out.println("The restlet server started ...");
    }
}
public class RestJaxRsApplication extends JaxRsApplication {

    public RestJaxRsApplication(Context context) {
        super(context);
        this.add(new MyApplication());
    }

}
public class MyApplication extends Application {

    @Override
    public Set<Class<?>> getClasses() {
        Set<Class<?>> resources = new HashSet<Class<?>>();

        resources.add(StudentResource.class);
        resources.add(TeacherResource.class);
        resources.add(TestResource.class);

        return resources;
    }

}
@Path("/test")
public class TestResource {
    @GET
    @Path("test")
    @Produces("text/html")  public String test(@QueryParam("name") String name,@DefaultValue("10") @QueryParam("age") int age) throws InterruptedException {
        System.out.println("name="+name);
        System.out.println("age="+age);
        return "SUCCESS";
    }

}

1、概述

@Consumes 注释代表的是一个资源可以接受的 MIME 类型。

@Produces 注释代表的是一个资源可以返回的 MIME 类型。

这些注释均可在资源、资源方法、子资源方法、子资源定位器或子资源内找到。

常见几个注解

@Cookieparam

@FormParam

@HeaderParam

@MatrixParam

@PathParam

@QueryParam

@BeanParam

总共7个注解。

这里我先介绍下以下三个注解

@MatrixParam

@PathParam

@QueryParam

这三个注解都是从URL里面取东西的。

@MatrixParam取URL分号(;)后面的参数。这个也要注意,一定要在?号前面。

@PathParam取URL路径里的参数。使用的时候需要注意,要在@Path注解内放一个变量,用{}括起来,然后才可以使用。

@QueryParam取URL?后面的请求参数。

2、@Produces:返回的类型

a.返回给client字符串类型(text/plain)

@Produces(MediaType.TEXT_PLAIN)   

b.返回给client为json类型(application/json)

@Produces(MediaType.APPLICATION_JSON)   

3、@Consumes

@Consumes@Produces相反,用来指定可以接受client发送过来的MIME类型,同样可以用于class或者method,也可以指定多个MIME类

型,一般用于@PUT,@POST

a.接受client参数为字符串类型

@Consumes(MediaType.TEXT_PLAIN)

b.接受clent参数为json类型@Consumes(MediaType.APPLICATION_JSON)

其他注解:

@PathParam
    @GET
    @Path("{username"})
    @Produces(MediaType.APPLICATION_JSON)
    public User getUser(@PathParam("username") String userName) {
        ...
    }    
@QueryParam
获取get请求中的查询参数:
    @GET
    @Path("/user")
    @Produces("text/plain")
    public User getUser(@QueryParam("name") String name,
                         @QueryParam("age") int age) {
        ...
    }   
如果需要为参数设置默认值,可以使用@DefaultValue,如:
    @GET
    @Path("/user")
    @Produces("text/plain")
    public User getUser(@QueryParam("name") String name,
                        @DefaultValue("26") @QueryParam("age") int age) {
        ...
    }  
@FormParam
获取post请求中表单中的数据:
    @POST
    @Consumes("application/x-www-form-urlencoded")
    public void post(@FormParam("name") String name) {
        // Store the message
    }   
@BeanParam
获取请求参数中的数据,用实体Bean进行封装
    @POST
    @Consumes("application/x-www-form-urlencoded")
    public void update(@BeanParam User user) {
        // Store the user data
    }    
时间: 2024-11-01 23:12:08

javax.?ws.?rs的相关文章

SSLv3协议、TLSv1.2协议配置不对导致javax.ws.rs.ProcessingException: java.net.SocketException: Connection reset

SSl:Secure Sockets Layer 安全套接层 TLS:Transport Layer Security传输层安全 是为网络通信提供安全及数据完整性的一种安全协议.TLS与SSL在传输层对网络连接进行加密.(见百度) 场景描述:将公司请求第三方公司的接口协议由http改成https后,出现了请求套接字异常的情况,第三方公司也收不到具体的请求,具体异常如下, javax.ws.rs.ProcessingException: java.net.SocketException: Conn

[maven 问题]java.lang.NoSuchMethodError: javax.ws.rs.core.Application.getProperties()Ljava/util/Map

NotifyService站点今天maven build的时候出现如下异常 WARNING] FAILED org.eclipse.jetty.maven.plugin.JettyServer@3c64339f: java.lang.NoSuchMethodError: javax.ws.rs.core.Application.getProperties()Ljava/util/Map; java.lang.NoSuchMethodError: javax.ws.rs.core.Applicat

java.lang.NoClassDefFoundError:javax/ws/rs/ext/MessageBodyWorkers

今天在使用RESTful Web Service过程中,报出了这个问题. 这个问题在官网有一些说明,在使用新版本的JAX-RS包时,相应的CXF包也应该使用较新版本.由于MyEclipse 2014自带CXF最高版本为CXF-2.1,所以建议大家从官网下载使用.官网下载地址:http://cxf.apache.org/download.html. 解压,拷贝lib包下的所有jar包,使用即可.

使用Grizzy+Jersey搭建一个RESTful框架()报错Exception in thread &quot;main&quot; java.lang.AbstractMethodError: javax.ws.rs.core.UriBuilder.uri(Ljava/lang/String;)Ljavax/ws/rs/core/UriBuilder;

报错的类涉及UriBuilder,我搜索类发现, 这个类存在于两个包中,我在baidu的时候,也有人提到是jar包冲突,我就删除了 这个依赖,问题解决了. 环境搭建过程请见地址https://blog.csdn.net/jinxfei/article/details/4714809 原文地址:https://www.cnblogs.com/BaleW/p/8668712.html

所有javax包

所有jar包 > javax javax 下载 javax jar 包 本站下载镜像: javax-jmi-model.jar.zip javax-jmi-reflect.jar.zip javax-mail-1.3.jar.zip javax-ssl-1_1.jar.zip javax-xml-soap-1.6.0.jar.zip javax.activation.jar.zip javax.activation_1.1.0.v201005080500.jar.zip javax.activa

CXF结合spring发布WS服务,含SOAP services、RESTful services

1.访问:http://localhost:8088/sniperWS/services/查看有哪些服务,包含Available SOAP services.Available RESTful services 2.客户端调用RESTful services:http://localhost:8088/sniperWS/services/address/getSuggestions.query 调用示例:$.ajax({    url: "http://ip:port/sniperWS/serv

Spring Cloud ZooKeeper集成Feign的坑2,服务调用了一次后第二次调用就变成了500,错误:Servlet.service() for servlet [dispatcherServlet] in context with path [] threw exception [Request processing failed; nested exception is com.n

错误如下: 2017-09-19 15:05:24.659 INFO 9986 --- [ main] s.c.a.AnnotationConfigApplicationContext : Refreshing org.spring[email protected]56528192: startup date [Tue Sep 19 15:05:24 CST 2017]; root of context hierarchy 2017-09-19 15:05:24.858 INFO 9986 --

2017-9月微信公众号支付-Java详解

微信支付源代码 在此之前,先C麻瓜藤N遍,MD官方文档一半正确一半错误.言归正传, 微信支付整体流程:微信授权登录商户的公众号--微信支付的公众号配置--统一下单--微信js调起支付页面--输入密码支付--支付成功,异步回调URL处理商户的相应业务 一.业务场景: 先看一下支付的业务场景:用户使用微信登录商户页面,点击支付按钮,调起微信支付,选择付款卡号,输入密码,完成支付,如图: 场景十分简单,不过步骤比较多,稍不注意就掉坑里了. 二.微信公众号支付的配置准备: 1)调用公众号支付,首先你得有

笔记:Jersey REST 传输格式-JSON

JSON 类型已经成为Ajax技术中数据传输的实际标准,Jersey 提供了多种处理JSON数据的包和解析方式,下表展示了JSON包和解析方式: 解析方式\JSON支持包 MOXy JSON-P Jackson 基于POJO的JSON绑定 是 否 是 基于JAXB的JSON绑定 是 否 是 低级的(逐字的)JSON解析和处理 否 是 否 使用 MOXy 处理JSON MOXy 是 EclipseLink项目的一个模块,是使用JAXB和SDO作为XML绑定的技术基础,实现了JSR222标准(JAX