问题标签 [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.

0 投票
2 回答
2960 浏览

java - REST API using Jersey 2

I would like to implement a REST API using Jersey 2 and I would like to have resources separated into interfaces and their implementations like e.g.:

I do not have any luck getting the resources exposed though. For the hello resource just mentioned I was hoping that the following would be enough:

web.xml:

pom.xml:

But when hitting

I get a 404 response:

Input will be greatly appreciated :) Thanks.


New discovery: it works with this:

0 投票
1 回答
1759 浏览

java - 在 Jersey 2 中将本金注入资源方法

我正在使用 Jersey 2 开发一个 REST API,目前我正在尝试通过使用类似于 Dropwizard 中的 @Auth 的注释来合并基本身份验证。和

hello 资源调用应该被一些代码拦截,这些代码使用 Authorization HTTP 请求标头中传递的凭据执行基本身份验证,并在成功时将主体注入方法主体参数。

我已经开始创建一个@Auth 解析器,见下文,但我看不到如何从其中访问 Authorization HTTP 请求标头?

如何解决这个问题?:)

0 投票
1 回答
2721 浏览

java - Jersey 2 中的两个自定义注入注解

为了让两个自定义注入注释在 Jersey 2 中共存,我应该如何进行 ValueFactoryProvider 绑定?下面我包含了我当前方法的一个示例,您可以看到 Hello 注释注入“隐藏”了 SmallTalk 注释注入。

你好注释:

SmallTalk 注释:

你好注释解析器:

SmallTalk 注释解析器:

资源配置:

使用两种注入注解的资源:

请求资源时的结果 - 应该是"Hello! Nice weather."

0 投票
1 回答
588 浏览

java - 针对 Jersey 2 中的 METHOD 和 PARAMETER 的自定义注释

我已经成功地用 target 实现了一个自定义注入注解PARAMETER。我不明白我是如何让我的注释支持目标METHOD的?

这是我的示例代码:

你好注释:

你好注释解析器:

你好资源:

当我打

我得到一个你好!无论小时是否在禁止间隔内,都返回。

0 投票
3 回答
2467 浏览

java - 什么对应于 Jersey 2 中 HK2 中的 asEagerSingleton?

我正在使用 Jersey 2 开发一个 REST API,我需要在启动时实例化我的一些类,而不仅仅是在某些资源请求触发它时。

所以我要问的是:我如何实现SomethingImpl在服务器启动时创建下面定义的实例,而不仅仅是在有人点击某物资源时创建?在 Guice 我会使用.asEagerSingleton().

应用:

某物:

一些资源:

0 投票
1 回答
1043 浏览

cdi - JaxRS 应用程序中的 CDI HK2 错误

我为 Glassfish 4 编写了一个 JaxRS 应用程序。它使用 Jackson 2。我可以毫无问题地构建它,但是当我部署它时,我得到以下 4 个错误中的一个或多个。

和/或

和/或

和/或

据我所知,当 glassfish 尝试两次加载一个类时可能会引发最后一个异常?

我上传了我的直接和间接依赖项的屏幕截图。 http://i.stack.imgur.com/HEtb1.png

关于其他解决方案,我尝试添加<scope>provided</scope>到包含这些类的包中。--> 没有成功

你有什么主意吗?

编辑1:

我的资源配置:

启用杰克逊 2:

很多这样的实体:

然后我有很多这样的DAO:

还有很多这样的资源:

编辑2:

我创建了一个新的测试项目。一旦我向 org.glassfish.jersey.server 添加依赖项,我就会收到错误消息。

编辑 3:

我做了一个错误的测试应用程序:

http://www.file-upload.net/download-8459084/testApplication_20131229.rar.html

0 投票
2 回答
6708 浏览

jersey - 泽西岛和 HK2 服务定位器

我正在尝试在 Application 构造函数(从 ResourceConfig 继承的东西)中初始化我的 Jersey 应用程序中的一些组件。看起来像这样

当我尝试在任何时候使用定位器时,我仍然无法使用 locator.create(MyThing.class) 方法创建我在 AbstractBinder 中注册的事物的实例。

我确定它们绑定正确,因为它们通过@inject 字段注释正确注入到我的资源类中。

不同之处在于 Jersey/HK2 框架正在实例化我的资源类(正如预期的那样,因为它们在我的包扫描路径中),但我似乎无法通过代码利用 ServiceLocator。

我的最终目标是在具有@Inject 属性时注入其他非球衣类,例如。我有一个需要注入配置的数据库访问层的工作类。我想说

并注入。

我如何获得真正的 ServiceLocator,它将注入我已经注册/绑定到我的 Binder 的所有内容?(或者我应该使用 ServiceLocator 以外的东西吗?)

0 投票
2 回答
2462 浏览

java - HK2 和带有构造函数参数的 Impls

我使用 HK2 作为 Jersey RESTful API 的一部分。我在一个多租户系统中工作,在我的大多数 API 调用中,租户是一个路径参数。我还有几个 DAO,它们目前在其构造函数中接受tenantId,例如:

我想使用 HK2 将我的 DAO 提供给我的应用程序的其他层。这样做的正确方法是什么?

  1. 将 DAO 更改为使用 setter 而不是构造函数参数。只有.. ick。这tenantId是 DAO 所需状态的一部分。

  2. 添加一个抽象层。创建<interface>MapperFactoryand MapperFactoryImpl,它有一个无参数构造函数和一堆 getter,例如getWidgetMapperand getGizmoMapper。只有..这似乎很麻烦。我宁愿不必维护这些额外的类。

  3. HK2 是否有一些神奇的方法可以在运行时将该 int 值注入 WidgetMapper 构造函数?然后我可以将tenantId 注入映射器,并将映射器注入我的其他类。

  4. ?? 其他HK2魔术?

0 投票
3 回答
22008 浏览

java - org.glassfish.hk2.api.UnsatisfiedDependencyException: Injectee 没有可用于注入的对象

我是 Jersey 2 的新手。到目前为止,我使用 Jersey 1.x 和 Spring,并希望使用 HK2 实现。

阅读教程后,我写了以下内容:

但是我得到以下异常:

怎么了?

0 投票
2 回答
496 浏览

memory - 以 jersey 作为实现和 hk2 的 jax-rs 客户端 api 产生内存泄漏

我有一个带有 Spring 2.5 上下文的简单 serlvet 应用程序。

由于 jax-rs 客户端推荐(https://jax-rs-spec.java.net/nonav/2.0-SNAPSHOT/apidocs/),我将客户端对象作为 Spring 单例 bean,然后创建应该是的 WebResource 对象很容易被 gc 冲洗掉。

关闭是使用 Spring 的 Disposable Bean 机制完成的(已调试,方法 get 被调用)。

几天后,我的应用程序内存不足。使用内存分析器,我可以看到我有来自 org.jvnet.hk2.internal.SystemDescriptor 的 500k 个实例,这及时导致了 PermGem。

你是否也遇到过这个问题?

谢谢!