java - getResourceAsStream 总是返回 null (Google App Engine)

标签 java google-app-engine restlet

我的代码有点问题,它总是抛出 NullPointerException:

public class WhateverResource extends ServerResource {
    @Get("json")
    public Representation represent(){
        InputStream is =  getContext().getClass().getClassLoader().getResourceAsStream("/whatever.properties");
        Properties props = new Properties();
        try {
            props.load(is); // NPE here!
            String whatever = props.getProperty("whatever_key");
            setStatus(Status.SUCCESS_OK);
        } catch (IOException e) {
            e.printStackTrace();
            setStatus(Status.SERVER_ERROR_INTERNAL);
        }
        return new StringRepresentation(props.toString());
    }
}

我检查了生成的 WAR 文件,在目标文件夹中,WEB-INF 文件夹下有 properties 文件。这段代码可能有什么问题?

最佳答案

答案是这样做:

    InputStream is =  getContext().getClass().getResourceAsStream("/whatever.properties");

并且 GAE 可以毫无问题地读取流。

没有 getClassLoader()

关于java - getResourceAsStream 总是返回 null (Google App Engine),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27717056/

相关文章:

java - 移动位图不平滑并且不平稳

google-app-engine - 为什么我的第一次部署可以工作,但所有后续部署都无法获取实例?

java - 如何让 ReSTLet 客户端忽略 SSL 证书问题

java - reSTLet 引擎中带有长字符串的 Pattern.match 的 StackoverflowError

java - 如何从 bean 类型数组列表中获取元素的索引

java - 如何使用 spring-boot 1.3.0.RC1 为 oauth2 提供自定义安全配置

ios - 适用于 iOS 应用程序的 Amazon Web Services/Google Cloud

javascript - 片段 uri 未在浏览器上执行

java - 如何在不刷新的情况下更新页面中显示的值

google-app-engine - 在 appengine 外部的 gcs 存储桶上执行非递归列表的更简单方法