问题标签 [hk2]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
tomcat - 将 Guice 与嵌入式 Tomcat 一起使用?
我有一个球衣 2 项目,其中 Guice 用于 DI(通过 hk2 桥)。Spring JDBC 用于 DB 调用,并通过 Guice 进行配置。我正在使用嵌入式 tomcat 在本地运行它。此设置适用于应用程序,即我能够访问我的球衣资源中的数据库
现在我想为需要数据库访问以进行初始设置的应用程序编写测试用例,但我在注入的对象上得到了NullPointerException 。
主文件(这里注入给出空值)
JdbcTemplate 注入仅在此处失败。在实际的球衣资源中,它工作正常。
web.xml(仅显示 guice 部分)
MyGuiceServletContextListener
JerseyConfig
java - 可选择注入 ContainerRequestContext
在我的 Jersey 应用程序中,我希望将一个ContainerRequestContext
实例注入到各种对象中。如果在请求上下文之外创建对象,我希望注入 null 。
我注意到 HK2 有一个@Optional
注释,你可以用它来注释依赖关系,我希望它能完成这项工作,不幸的是它根本不会改变行为。
如果这个对象在请求范围之外被实例化(在我的例子中,一个由 Quartz 调度程序运行的作业),那么就会抛出这样的异常:
如果 Jersey 在请求范围之外只注入 null ,它将大大简化我的代码,有什么想法可以做到这一点吗?
java - 如何在 jersey / hk2 应用程序中正确配置 EntityManager?
我有一个使用 JPA 持久性的 jersey-2 / hk2 应用程序。像这样在EntityManager
启动时绑定
工厂类是
这可行,但是对于每个请求,我都会在日志中收到有关 EntityManager 已注册的警告:
我究竟做错了什么?在 jersey-2 / hk2 应用程序中初始化 EntityManager 的正确方法是什么?
java - 使用 FactoryModuleBuilder 的 HK2 等效辅助注入
由于迁移到球衣 2,我需要从 guice 迁移到 HK2。对于我的一些依赖项,我有一个辅助注入方法,我无法在 HK2 中实现。看起来它应该通过自定义注入解析器来解决,但我真的不明白如何。这些例子对我来说不够清楚..
这是它在 Guice 上的外观:
我怎样才能在 HK2 上实现这个?
java - 泽西岛:注入 http 参数时的跟踪类
我实现了自己的 ParamConverterProvider,以便在我的 web 服务中使用许多 AbstractParamConverter 作为参数。
例如,我有两个像这样的简单网络服务:
当 web 服务绑定/注入 http 参数时,我想记录(跟踪)类名。
例如:“来自 MyWs.class 绑定参数 [myobject] 与 MyObject.class”
事实上,当它移动到以下课程时:
它会丢失类名信息。
请建议我,如果可以在我的 ParamConverterProvider 或其他任何东西中注入参数来跟踪类名。
谢谢
java - 如何让我的 Jersey 2 端点在启动时急切地初始化?
我正在从 Jersey 1.x 移植一些代码,并且我对各种健康检查端点的实现依赖于@Singleton
在启动时初始化的所有端点资源,以便能够检测要执行哪些检查。
在 Jersey 2.0 中-无论我做什么,我似乎都无法让我的资源端点在启动时初始化,并且它们仅在第一次访问每个端点时才被构造+初始化。
我想我可以在Application
课堂上自己初始化它们,但我宁愿使用包扫描!
有没有人知道是否有一些配置选项会告诉 Jersey 2 急切地初始化它在包扫描期间找到的所有资源端点?
还是一些 HK2 注释或技巧?
jersey - 引导 Jersey 2(使用 Jetty)的正确方法是什么?
我已经设法通过 HK2 注入破解了我的工作泽西/码头设置,但鉴于我发现大量有些令人困惑(有时不一致)的文档,我不确定我是否错过了一些正确处理的重要细节..就目前而言,我正在像这样引导servlet;
我将我的 AppResourceConfig 定义为;
和我的 AppBinder 一样;
这一切都适用于我的简单测试用例,但我不清楚一些事情。Jersey 文档引用了一个我应该扩展的应用程序类,并使用 Injections.addBinding 设置绑定。然而,为了做到这一点,他们以某种方式使用 @Inject 将 ServiceLocator 实例放入他们的构造函数中。然后他们似乎根本没有创建活页夹?(https://jersey.java.net/documentation/latest/migration.html -- 26.14.1.1. 注入自定义对象)。
有人可以阐明我的方法是否正确,也许可以启发我了解 Application 和 ResourceConfig 之间的区别以及我实际上应该做什么以与框架的意图保持一致?
jersey-2.0 - HK2 覆盖另一个 AbstractBinder 绑定的正确方法是什么
我来自 guice 世界,正在寻找一种类似于 Guice 提供的 Modules.override 的方法。我有一个模式,我为我的生产创建一个基本模块/抽象绑定器,然后在测试中我覆盖需要更改的绑定。
在理想的世界中,我想简单地扩展父 AbstractBinder,然后实现绑定以覆盖父绑定器。或者另一种选择是简单地安装父 Binder,然后覆盖我想要用于测试目的的绑定。
这可能吗,是否推荐?我注意到当我这样做时,IOCrestModule 的绑定没有被 IOCMockRestModule 覆盖。我假设我可以在最后添加安装,这可能会起作用,但不确定这是否会在以后引起任何问题。
java - HK2 没有用球衣注入 HttpServletRequest
我正在尝试按照此处的示例创建工厂以注入我的 HttpSession。不幸的是,无论我尝试什么,它都不起作用。不知道可能是什么问题。
我尝试只注入 HttpServletRequest 和提供程序。这是我使用提供程序的示例。尝试在提供方法中访问提供程序时,错误是空指针异常。如果我尝试注入 HttpServletRequest,则没有可用于注入的对象。我正在使用 JerseyTest 在 GrizzlyTestContainer 中运行它。为了绑定 HttpServletRequest,我需要添加一些东西到我的活页夹中吗?我似乎找不到一个例子。