java - jersey 如何在一个资源中创建静态成员

标签 java rest nullpointerexception jersey

我正在创建一个简单的 REST 服务,它仅拥有 REST 资源(带有 Jersey 注释的 java 类)。此 REST 资源需要多个 Java 对象才能工作。这些Java对象非常大,有几百MB,因此将它们加载到RAM中的速度很慢。因此,我尝试将这些对象添加为该 REST 类的静态成员。但是,当我向 REST 服务发送请求时,它总是抛出 NullPonterException。谁能解释为什么这些静态成员在加载 REST 资源(类)之前没有实例化?还是有其他一些原因?

提前谢谢你们。

注意:这些静态成员只是一些映射和列表对象,由依赖项 jar 中的类创建。

编辑:假设下面的InfoConstructor是一个实用程序类,负责创建这些静态对象。

我的 REST 资源类的代码如下:

@Path("test")
public class TestResource {
    public static Map<String, Integer> vocMap = InfoConstructor.getVocMap();

    @Get
    @Produce(Media.TEXT_HTML)
    public String testGet() {
         return vocMap.hashCode();
    }
}

最佳答案

根据评论,听起来静态资源已正确初始化。更多的是解决类路径资源的问题。看看Classpath resource within jar

关于java - jersey 如何在一个资源中创建静态成员,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11902984/

相关文章:

java - spring中如何使用一个函数保存多行数据

java - SignedXml checksignature 返回 false。

java - 从浏览器获取 URL

java - 在文件中写入多个对象并读取它们

java - RestTemplate 解码错误正文

安卓应用程序停止

java - 无法在rest api中使用InputStream上传多个文件

rest - Adobe sign API - 创建一个带有预填充详细信息的小部件

java - 什么是 NullPointerException,我该如何解决?

java - NullPointerException:尝试在空对象引用上调用虚方法 AlertDialog.setTitle(java.lang.CharSequence)