首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >Jersey -动态挑选资源的方法

Jersey -动态挑选资源的方法
EN

Stack Overflow用户
提问于 2012-09-12 14:25:11
回答 1查看 1.8K关注 0票数 0

我想在Jersey中基于某些注释动态调用资源方法。例如,如果我在不同的包中有两个相同的资源,具有类似的资源方法,如下所示...

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
package com.mycompany.controller.v1;

@Component(value = "UsersControllerv1")
@Path("/users")
public class UsersController {

    @GET
    @Version("v1")
    @Produces({MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON})
    public Response getUsers() {
    }
}


package com.mycompany.controller.v2;

@Component(value = "UsersControllerv2")
@Path("/users")
public class UsersController {

    @GET
    @Version("v2")
    @Produces({MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON})
    public Response getUsers() {
    }
}

其中@Version是指定api版本的自定义注释。我是否可以拦截一个请求(可能使用ResourceFilterFactory),该请求指定一个版本作为头参数,并使用匹配的版本调用特定的资源方法

如果尝试这样做,我会在启动时得到以下错误

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
12-Sep-2012 14:36:00 com.sun.jersey.spi.inject.Errors processErrorMessages
SEVERE: The following errors and warnings have been detected with resource and/or provider classes:
SEVERE: Conflicting URI templates. The URI template /users for root resource class   com.mycompany.controller.v2.UsersController and the URI template /users transform to the same regular expression /users(/.*)?
12-Sep-2012 14:36:00 com.sun.jersey.spi.spring.container.servlet.SpringServlet initiate
SEVERE: Exception occurred when intialization
com.sun.jersey.spi.inject.Errors$ErrorMessagesException
    at com.sun.jersey.spi.inject.Errors.processErrorMessages(Errors.java:170)
    at com.sun.jersey.spi.inject.Errors.postProcess(Errors.java:136)
    at com.sun.jersey.spi.inject.Errors.processWithErrors(Errors.java:199)
    at com.sun.jersey.server.impl.application.WebApplicationImpl.initiate(WebApplicationImpl.java:771)
    at com.sun.jersey.spi.spring.container.servlet.SpringServlet.initiate(SpringServlet.java:117)
    at com.sun.jersey.spi.container.servlet.ServletContainer$InternalWebComponent.initiate(ServletContainer.java:318)
    at com.sun.jersey.spi.container.servlet.WebComponent.load(WebComponent.java:609)
    at com.sun.jersey.spi.container.servlet.WebComponent.init(WebComponent.java:210)
    at com.sun.jersey.spi.container.servlet.ServletContainer.init(ServletContainer.java:373)
    at com.sun.jersey.spi.container.servlet.ServletContainer.init(ServletContainer.java:719)
    at org.eclipse.jetty.servlet.FilterHolder.doStart(FilterHolder.java:114)
EN

回答 1

Stack Overflow用户

发布于 2012-09-12 15:28:20

我从未见过任何与jersey相关的版本注释的用法。我认为这是不可能的(如果是的话,也许你有一个链接要提供)。

URL模式必须是明确的(彼此之间)。

如果您想提供同一资源的两个版本,则必须在URL中提供版本。

但是,您可以在查询中设置一个参数,但它实际上不是资源的2个不同版本,而是1个版本根据输入参数以不同方式响应。

例如:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
@POST
  @Path("getUsers")
    @Consumes(MediaType.TEXT_PLAIN)
    @Produces(...)
    public String getUsers(final String query){
....

允许您将所需的任何内容传递给资源。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12390405

复制
相关文章
java jersey,java Jersey
XML和JSON 是最为常用的数据交换格式。本例子演示如何将java对象,转成JSON输出。
全栈程序员站长
2022/09/18
1.4K0
java jersey,java Jersey
java jersey使用总结_jersey Java Jersey配置「建议收藏」
此示例说明了如何配置Jersey,以便您可以开始将其用作RESTful API的JAX-RS实现框架。
全栈程序员站长
2022/09/14
1.1K0
pytest按tag动态挑选测试用例
pytest是个成熟全套的 python 自动化测试工具。单元测试,功能测试、接口自动化测试中均可应用;与 unittest相比,它能支持更多、更全面的功能,同时也具备更多特色和优势,可以参考之前同学发布的文章。
用户5521279
2020/11/09
2.3K0
pytest按tag动态挑选测试用例
基于服务树的动态资源管理方法
如果非要说CMDB是ITOM的核心元数据,那么服务树就是CMDB的核心数据。如果非要说应用CMDB最核心的精髓在哪儿,那么服务树必须是其一。
用户1593318
2019/11/18
1.4K0
Jersey 409
Jersey 报409错误 解决方案 : 在webapp下新建upload文件夹 然后建一个file空文件 像这样:
周杰伦本人
2023/10/12
1620
Jersey 409
域名购买方法 好域名的挑选原则
网络的发达使很多人想通过建立网站来宣传自己或者品牌。但建立网站过程比较繁琐,而且重中之重的便是域名购买,也许很多人都不知道域名的意思。其实域名就是所访问的网站的地址,比如.com或者.cn等。那么如何购买属于自己或者品牌的域名?下面分享购买域名的方法。
用户8739990
2021/07/12
17.1K0
域名购买方法 好域名的挑选原则
Jersey框架一:Jersey RESTful WebService框架简介[通俗易懂]
开发RESTful WebService意味着支持在多种媒体类型以及抽象底层的客户端-服务器通信细节,如果没有一个好的工具包可用,这将是一个困难的任务
全栈程序员站长
2022/09/29
1.7K0
Python数据驱动实践(四)–动态挑选测试用例
前面几天, 我从数据驱动的一个第3方库ddt出发,连续分享了3篇文章: Python数据驱动实践(一)–ddt实现数据驱动 Python数据驱动实践(二)–教你用Python实现数据驱动 Python数据驱动实践(三)–动态添加测试用例
iTesting
2019/10/29
5980
Python数据驱动实践(四)–动态挑选测试用例
资源文件的动态加载
页面加载 首先,浏览器发起直接对目标html的请求,然后分析其中用到的资源并下载,浏览器有自己的规则来判断什么样的资源可以被并行下载,什么样的不可以,浏览器对加载顺序有着特殊的喜好:   JS的出现会延迟后续CSS的下载,因为JS会改变页面元素,浏览器会延迟整个页面的渲染直到JS被下载解释并执行,所以必须让CSS的链接在JS前面以达到尽可能的并行。 与浏览器支持的并发连接数有关 在HTTP 1.1协议中要求浏览器访问同一host的连接数不得大于2,但事实上当前绝大多数浏览器都违背了这一要求,具体参见:并发连
小端
2018/04/16
2.3K0
Android 动态获取资源的ID
但是对于以上做法, 官方并不推荐,并且 getIdentifier这个写library的时候, 如果里面需要引用主程的资源且R所在的包名未知时还是很有用的(如果在gradle里修改了packageName, R所在的包名是和packageName不一样的,没法反射),当然也是有解决的办法: 如果愿意,是可以根据业务拼接出 “package_name.R.drawable.class” 的。但是如果这样的话,视具体情况一定有更好的解法。
胖虎哥
2023/05/10
2.5K0
java jersey使用总结_Java Jersey2使用总结
在短信平台一期工作中,为便于移动平台的开发,使用了Java Jersey框架开发RESTFul风格的Web Service接口。在使用的过程中发现了一些问题并积累了一些项目经验,做了一下总结,便于个人成长,同时也希望对有需要的同仁有好的借鉴和帮助。
全栈程序员站长
2022/09/14
1.3K0
介绍 Jersey 依赖 原
Jersey 使用 Apache Maven 进行构造和安装。非快照(Non-snapshot)Jersey 发行版本是不会部署到 中心 Maven 仓库(Central Maven Repository)。 Jersey 同样也会部署到 toJava.Net 中心仓库(Java.Net Maven repositories)中,在这个仓库中同时部署了 Jersey 的快照版本以便于你测试最新的 Jersey 安装版本,请参考 Java.Net Snapshots Maven repository 中的内容。
HoneyMoose
2019/01/30
6100
Jersey快速入门案例
Eclipse Jersey 是一个 REST 框架,提供了 JAX-RS (JSR-370) 的实现。
青山师
2023/05/05
5930
如何启用Impala的动态资源池
在Cloudera Manager中动态资源池分为Yarn的动态资源池和Impala的动态资源池两种。Fayson在前面有多篇文章介绍了Yarn动态资源池的使用。本篇文章Fayson主要介绍如何通过CM启用Impala的动态资源池及介绍。
Fayson
2018/11/16
3.7K0
Spark on Kubernetes 动态资源分配
本文主要讲述了 Spark on Kubernetes 的发展过程和 Dynamic Resource Allocatoin(DRA) 这个重要特性,以及与之相关的 External Shuffle Service(ESS)。
runzhliu
2020/08/06
2.4K0
Spark on Kubernetes 动态资源分配
webservice框架jersey简单总结[通俗易懂]
项目中需要使用到webservice,具体的是使用jersey。那么首先需要了解jersey和webservice的关系,捋顺webservice框架的各种实现,通过查阅相关博客,我个人总结webservice的结构图如下:
全栈程序员站长
2022/11/08
1K0
webservice框架jersey简单总结[通俗易懂]
使用 Jersey 调用 Restful 服务
第 20 章 Jersey - RESTful Web Services in Java. 目录 20.1. Client 20.1.1. Maven 版本 20.1.2. GET 操作 20.1.3. GET + Auth 用户认证 https://jersey.java.net/ 20.1. Client 20.1.1. Maven 版本 1.x <!-- https://mvnrepository.com/artifact/com.sun.jersey/jersey-client --> <d
netkiller old
2018/03/05
1.6K0
Python教你挑选礼物
又到了一年一度的教师节,每次教师节大家都会烦恼不知道送什么礼物?尤其是对于理工男来说,更是一个让人头大的问题。我今天就和大家分享一个用Python爬取商品信息的项目,希望可以给大家选礼物时提供一个参考。
stormwen
2019/09/12
1.1K0
Python教你挑选礼物
Spark GenericUDF动态加载外部资源
文章1中提到的动态加载外部资源,其实需要重启Spark任务才会生效。受到文章2启动,可以在数据中加入常量列,表示外部资源的地址,并作为UDF的参数(UDF不能输入非数据列,因此用此方法迂回解决问题),再结合文章1的方法,实现同一UDF,动态加载不同资源。本文通过继承GenericUDF类,读取存放在Redis集群中的字符串,构建字典树,完成词包匹配,来说明这一工作。
mikeLiu
2020/09/01
2.7K0
Spring Cloud Edgware新特性之:解决Eureka中Jersey 1.x版本过旧的问题-不使用Jersey
Spring Cloud是当前炙手可热的微服务开发框架。它的功能强大,组件丰富,设计优雅。目前Spring Cloud还在不断发展之中。 Spring Cloud即将发布 SpringCloudEdgware 版本。该版本解决了不少Bug,新增了不少新特性,本系列博客将为大家详细阐述在Spring Cloud Edgware中新增的特性。 为了让描述更加的贴合实际,本文将结合笔者所在团队遇到的实际情况进行讲解。 背景 Eureka服务器与客户端之间默认使用 Jersey1.x 进行基于HTTP协议的交互。然
用户1516716
2018/04/02
1.4K0

相似问题

在Jersey中动态(取消)部署资源

24

Jersey + Guice不能混合非jersey资源和jersey资源

10

Jersey资源筛选器和选项方法

10

Jersey资源映射

11

在Jersey资源方法中使用MyClass as @PathParam

10
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文