【发布时间】:2017-10-24 15:44:56
【问题描述】:
我正在使用 jaxrs 2.0 并尝试在 ContainerRequestContext 中填充一个对象并在业务逻辑中检索它。
我在 ContainerRequestContext 中填充对象,例如:
@Override
public void filter(ContainerRequestContext requestContext) throws IOException {
MyObject myObject = new MyObject();
requestContext.setProperty("myObject", myObject);
}
我正在尝试在业务逻辑中阅读它:
@GET
@Path("/custom")
public String data(@Context ContainerRequestContext crc) {
Object pco = crc.getProperty("myObject");
}
我正在使用以下示例中的这种方法:How to inject an object into jersey request context?
但是,我将 ContainerRequestContext crc 设为空。谁能告诉我我做错了什么?
【问题讨论】:
-
这在 weblogic 12.2.1(完整的 Java EE 7)上对我来说很好。你能提供更多关于服务器的信息吗?
@ApplicationPath等 -
我在使用 arquillian 进行测试时遇到了这个问题
-
好的,您应该在描述中提供更多信息,因为它在测试期间发生的情况并不明显,因此问题不一样。我不太了解 Arquillian,所以我帮不了你。
-
像这样注入 ContainerRequestContext 的能力,我认为是泽西岛特有的。因此,如果您的后端没有使用 Jersey,那么它可能无法正常工作。例如,带有 JBoss 的 arquillian 可能无法工作,因为 JBoss 使用 RESTEasy。 Glassfish 或 Weblogic 使用 Jersey。