Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >Jersey JAXRS过滤器,在命中资源(web服务)之前提供未编组的实体

Jersey JAXRS过滤器,在命中资源(web服务)之前提供未编组的实体
EN

Stack Overflow用户
提问于 2012-12-13 19:02:10
回答 2查看 1K关注 0票数 7

有没有一种优雅的方式(过滤器,钩子)在Jersey中拦截未编组的实体(及其注释),然后再访问web服务资源方法-那些用@POST,@PUT注释的方法。

我真的需要实体本身及其上的任何注释,然后使用验证器注释的属性对该实体执行验证(看起来像JSR303,但我们没有用元数据注释整个bean )。从资源的实现角度来看,我的目标是能够在资源方法中键入以下内容:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
@Path("/people")
@Produces({ MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON })
public class PeopleService {
        @POST
        public Response createPerson(@CustomValidator("personValidator") Person person) throws URISyntaxException {
            String uri = someService.createPerson(person);
            return Response.created(new URI(uri)).entity(uri).build();
        }
    }

我开始编写一个自定义的MessageBodyReader,并且我设法让JSON完全工作,因为我只是委托ObjectMapper去反序列化JSON。除此之外,我得到了参数的注释,一切都工作得很好。然而,当我需要对XML进行反序列化时,事情就一团糟了。我不知道如何获得Jersey会使用的原始反序列化程序,并委托给它。我也觉得我是在不必要地重写Jersey的一部分,如果jersey在MessageBodyReader之后和实现之前调用允许其自身扩展的web资源服务以便我可以向流中添加自定义行为,那么我更愿意停止使用MessageBodyReader作为一个棘手的集成点。

最后,Jersey是否有任何扩展点,在那里它可以将未编组的实体和它的任何参数声明传递给我,并允许我进行自定义处理?或者我必须自己弄清楚如何解组实体(使用JAXBContext或其他什么不用)?有可能求助于AOP吗?将验证器注入资源类并放弃注释的想法?

Jersey版本: 1.5

EN

回答 2

Stack Overflow用户

发布于 2013-12-16 15:30:26

归根结底,Jersey有没有任何扩展点,在那里它可以给我未编组的实体和它的任何参数声明,并允许我进行自定义处理?

是的,在Jersey 1.x中有一个SPI,您可以在其中提供自己的方法调用器。我从未实现过SPI,但据我所知,它是在任何MessageBodyReaders或过滤器之后调用的。看看ResourceMethodCustomInvokerDispatchProvider吧。在Javadoc中:

服务实现(服务提供者)通过将提供者配置文件(如果不存在) "com.sun.research.ws.rest.spi.invoker.ResourceMethodCustomInvokerDispatchProvider“放在资源目录META-INF/

中,并在文件中包含该实现的完全限定的服务提供者类来标识自己。

该接口类似于ResourceMethodDispatchProvider,但允许使用自定义的JavaMethodInvoker实例,该实例将用于进行最终的Java方法调用。

如果您实现了ResourceMethodCustomInvokerDispatchProvider,您应该能够提供您自己的JavaMethodInvoker,它将能够访问被调用的资源方法,包括它的所有参数和注释。

请注意,以上所有内容都适用于Jersey 1.x。在Jersey 2中,ResourceMethodInvocationHandlerProvider提供了类似的功能。

票数 2
EN

Stack Overflow用户

发布于 2013-05-28 11:11:20

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

https://stackoverflow.com/questions/13866613

复制
相关文章
[答疑]在向用户提供服务之前,某些服务需要用户所在部门的审批
关于学习UML业务建模的问题 通过反复看书学习和实践,觉得在业务建模上存在一些困惑和疑问,特向各位请教和讨论。 业务建模又称为组织建模,有三个要素:一是确定组织,二是确定组织对外提供的服务价值,三是确定组织外部的业务执行者(主执行者和辅执行者),现在的问题是: 一、对于确定组织,难点在于组织如何划定比较合适,可能划大了,也可能划小了。 二、对于确定业务执行者,困难在于如果组织内部有一项流程,表面上看,找不到对应的组织外部执行者怎么办? 三、对于确定业务用例,一是用例名称是站在执行者的角度命名还是组织提供的角度命名;二是对用些组织外部的执行者,找不到相应的业务用例,如以银行为组织,银监会作为外部执行者,适合的业务用例是什么,用(监管)命名是否合适? Z(520***04) 16:14:38 以前我就用的监管 譯揮 (252***466) 16:17:15
用户6288414
2022/04/11
3260
[答疑]在向用户提供服务之前,某些服务需要用户所在部门的审批
MySQL的order by该如何避免“未命中索引“
  要学会如何使用,你先要搞清楚:1、怎么看SQL是否用上了索引;2、怎么写SQL能避开出错点。
陈哈哈
2022/05/31
2.6K0
MySQL的order by该如何避免“未命中索引“
腾讯云CDN+日志服务统计URL未命中top10
文章参考自官方文档,但无奈官方文档写的demo未联合说明怎么改,顺便mark下来做记录
105号运维实习生
2020/11/13
1.5K2
腾讯云CDN+日志服务统计URL未命中top10
通信服务提供商在选择混合云之前要问的四个问题
如今,似乎云计算服务提供商与天空中的云朵一样多,那么你如何知道哪个云适合您的通信业务呢?毕竟,不同的业务应用对于可扩展性,性能和延迟有不同的要求。例如,适用于客户应用管理(CRM)的应用程序可能无法用于实时视频会议。为了增加更多的选择,企业提供了各种云选项,包括私有云,公共云和混合云。为了帮助提供一些清晰度和判断力,以下有四个问题可以帮助你为业务路径选择正确的云。 1.当网络中断的时候会发生什么? 业务连续性和灾难恢复对于许多业务应用程序至关重要,特别是对于商业通信来说。如果企业的呼叫中心的业务中断长达一个
静一
2018/03/26
7870
spring rest 容易被忽视的后端服务 chunked 性能问题
spring boot 容易被忽视的后端服务 chunked 性能问题 标签(空格分隔): springboot springmvc chunked 背景 spring boot 创建的默认 spri
王清培
2018/01/05
2.4K0
java jersey使用总结_Java Jersey2使用总结
在短信平台一期工作中,为便于移动平台的开发,使用了Java Jersey框架开发RESTFul风格的Web Service接口。在使用的过程中发现了一些问题并积累了一些项目经验,做了一下总结,便于个人成长,同时也希望对有需要的同仁有好的借鉴和帮助。
全栈程序员站长
2022/09/14
1.4K0
使用 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
Spring Boot与JAX-RS框架Jersey的完美搭配
Jeresy是一个轻量级的JAX-RS框架 添加Jeresy 2.x的依赖 compile group: 'org.glassfish.jersey.core', name: 'jersey-client', version: '2.26' compile group: 'org.glassfish.jersey.containers', name: 'jersey-container-servlet', version: '2.26' compile group: 'org.glassfish.j
白石
2019/08/23
2.8K0
java jersey,java Jersey
XML和JSON 是最为常用的数据交换格式。本例子演示如何将java对象,转成JSON输出。
全栈程序员站长
2022/09/18
1.4K0
java jersey,java Jersey
推荐系统提供web服务的2种方式
推荐系统是一种信息过滤技术,通过从用户行为中挖掘用户兴趣偏好,为用户提供个性化的信息,减少用户的找寻时间,降低用户的决策成本,让用户更加被动地消费信息。推荐系统是随着互联网技术的发展及应用深入而出现的,并在当前得到广泛的关注,它是一种软件解决方案,是toC互联网产品上的一个模块。用户通过与推荐模块交互,推荐系统通过提供的web服务,将与用户兴趣匹配的标的物筛选出来,组装成合适的数据结构,最终展示给用户。推荐系统web服务是前端和后端沟通的桥梁,是推荐结果传输的最后通道,信息传输是否通畅,传输是否足够快速,对用户体验是有极大影响的。本文我们就来讲解推荐系统提供web服务的两种主要方式,这两种方式是企业级推荐系统最常采用的两种形式。
石晓文
2020/02/24
9920
推荐系统提供web服务的2种方式
WebService
Web Service(WEB服务)能够快捷和方便地综合结合各种系统、商务和任何应用平台。利用最新的Web Service 标准能够使任何软件系统和系统之间的应用互通互联,方便,而且更加廉价。
宋先生
2019/07/18
5.9K0
webservice框架jersey简单总结[通俗易懂]
项目中需要使用到webservice,具体的是使用jersey。那么首先需要了解jersey和webservice的关系,捋顺webservice框架的各种实现,通过查阅相关博客,我个人总结webservice的结构图如下:
全栈程序员站长
2022/11/08
1K0
webservice框架jersey简单总结[通俗易懂]
面向资源与面向活动的 Web 服务
每当一些 Web 应用服务提供方提出允许开发者集成他们的服务的 Web 服务 API 时,大家都非常关心由 API 实现的互操作设计模式。如果 API 使用的是 REST 样式的互操作,REST 方法的拥护者就会将该 API 作为说明为什么 REST 样式服务比 SOAP 样式服务更优越的重要例子而加以称赞;同样地,如果 API 使用 SOAP 样式 Web 服务模式,情况也类似。似乎很少有人关心这样的一个事实,模式的选择主要取决于正在被执行的应用程序的类型,并且像所有优秀的体系结构决策一样,开发者应该将他
张善友
2018/01/22
1.4K0
微服务架构之Spring Boot(三十七)
Spring WebFlux提供了一个 WebFilter 接口,可以实现过滤HTTP请求 - 响应交换。在应用程序上下文中找到的 WebFilter beans将自动用于
用户1289394
2022/04/07
9830
java jersey使用总结_jersey Java Jersey配置「建议收藏」
此示例说明了如何配置Jersey,以便您可以开始将其用作RESTful API的JAX-RS实现框架。
全栈程序员站长
2022/09/14
1.1K0
新浪微博平台服务部署及Web框架
平台作为整个微博架构的基础功能服务层,对外以Http接口的方式提供服务。接口遵守RESTful规范。接口示例如下:
后端技术探索
2018/12/17
3.6K0
新浪微博平台服务部署及Web框架
使用 Docker、Nginx 和 ttyd 提供稳定的 Web 终端服务
最近 AI 领域不仅模型大热,上手成本也大幅下降,不少同学纷纷踏上了模型推理、微调、甚至开启了炼丹之路。我有一位没有开发的朋友也对上面这些事情产生了浓烈的兴趣,希望亲自动手试试看。
soulteary
2023/03/12
1.6K0
使用 Docker、Nginx 和 ttyd 提供稳定的 Web 终端服务
图个源码系列 · 开端 · eureka项目解构
eureka,是springCloud生态中的负责构建服务注册与发现的注册中心组件。本文,通过从eureka的项目结构出发,一点点去剖析eureka的源码。
简熵
2023/03/06
4790
图个源码系列 · 开端 · eureka项目解构
Spring Boot 中文参考指南(二)-Web
Spring Boot 非常适合开发Web应用程序,可以使用Tomcat、Jetty、Undertow 或 Netty 作为HTTP服务器,基于servlet的应用程序使用spring-boot-starter-web模块,响应式的Web应用程序使用spring-boot-starter-webflux。
阿提说说
2023/03/14
4K0
点击加载更多

相似问题

Jersey:在资源过滤器中使用提供程序

21

Jersey,在命中资源之前向浏览器返回响应

12

Jersey资源过滤器

10

提供多路径服务的Jersey资源类

10

Apache - CXF jaxrs-server -无法命中jaxrs-server端点中首先定义的资源

23
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

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

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
社区富文本编辑器全新改版!诚邀体验~
全新交互,全新视觉,新增快捷键、悬浮工具栏、高亮块等功能并同时优化现有功能,全面提升创作效率和体验
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文