Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/387.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 从静态上下文访问ResourceContext实例_Java_Jersey_Jax Rs - Fatal编程技术网

Java 从静态上下文访问ResourceContext实例

Java 从静态上下文访问ResourceContext实例,java,jersey,jax-rs,Java,Jersey,Jax Rs,在Jersey JAX-RS中: 是否有方法从静态上下文访问ResourceContext实例?到目前为止,我两手空空,尝试了许多方法,但都没有达到我的预期。下面是我想要实现的一个示例片段: import com.sun.jersey.api.core.*; import javax.annotation.PostConstruct; import javax.ws.rs.core.Context; @Singleton @Provider public static class MyCla

在Jersey JAX-RS中:

是否有方法从静态上下文访问ResourceContext实例?到目前为止,我两手空空,尝试了许多方法,但都没有达到我的预期。下面是我想要实现的一个示例片段:

import com.sun.jersey.api.core.*;

import javax.annotation.PostConstruct;
import javax.ws.rs.core.Context;

@Singleton
@Provider
public static class MyClass
{
    private static MyClass singleton;

    @Context
    private ResourceContext context;

    @PostConstruct
    private void constructor () 
    {
       MyClass.singleton = this;
    }

    public static <T> T acquireResource(Class<T> clazz)
    {
       return MyClass.singleton.context.getResource(clazz);
    }
}
import com.sun.jersey.api.core.*;
导入javax.annotation.PostConstruct;
导入javax.ws.rs.core.Context;
@独生子女
@提供者
公共静态类MyClass
{
私有静态MyClass单例;
@上下文
私人资源语境;
@施工后
私有void构造函数()
{
MyClass.singleton=this;
}
公共静态T收单机构资源(类别clazz)
{
返回MyClass.singleton.context.getResource(clazz);
}
}
但不幸的是,这不能正常工作,因为我认为提供者是延迟加载的。我甚至不确定“@Singleton”注释是否有任何作用


我还尝试了扩展WebAppResourceConfig,它是应用程序的一个实例,但这破坏了我的应用程序,我不完全理解原因。

在不知道为什么要这样做的情况下,不要做任何事情。请解释为什么需要在
静态
上下文中
ResourceContext
。原因是因为我正在扩展第三方库招摇过市,自动记录基于JAX-RS的API。尽管Swagger是从JAX-RS资源调用的,但我必须扩展的代码是根深蒂固的,是使用“new”实例化的,不支持依赖项注入,并且我没有在该上下文中引用任何JAX-RS资源类对象。我正在编写的扩展该接口的代码将获得对某个MessageBodyWriter单例的引用及其调用方法。最终目的是使用请求实体的MessageBodyWriter的MessageBodyReader的MessageBodyWriter逆动态生成API调用的示例请求实体。