如何在Jersey JAX-RS应用程序中注入HK2 ServiceLocator

问题描述 投票:0回答:1

我正在迁移使用Java序列化/反射来注册服务并将其无缝调用为远程端点(通过http的javabin)或本地调用的旧式服务框架。 我已将远程呼叫替换为jersey端点。 还使用了基于hk2 aop的拦截器来重新创建当前框架的某些拦截功能。 当远程客户端调用端点时,它工作正常。 现在,我需要对服务方法的本地调用执行相同的操作,并且能够使用远程服务方法调用相同的拦截逻辑

(基于本文实现org.glassfish.hk2.api.InterceptionService- https: //blog.dejavu.sk/2015/01/21/intercepting-jersey-resource-method-calls/)

我相信如果我能够从hk2注册表/定位器中获取service(jax-rs资源)类的实例,则方法调用将调用相同的注册拦截器。 如何实现呢?

jersey interceptor hk2
1个回答
0
投票

正如Paul在评论中所说,您始终可以仅@Inject或查找ServiceLocator。 实际上,它是ID最低的服务(第一个添加到hk2系统的服务)。

对于子级定位器,除非您对查询进行非常特定的操作,否则通常将在父级ServiceLocator之前获得子级ServiceLocator。 这是因为重复服务的规则是选择一个具有最高定位符ID的服务(它将是子服务ID)。

© www.soinside.com 2019 - 2024. All rights reserved.