java - Web应用程序java从文件加载资源

标签 java apache maven tomcat

我在做一个动态的 web 项目,我想加载一个资源文件。

我这样做了:

String queryTemplate = IOUtils.toString(this.getClass().getResource(
                "test.rq"));

test.rq 存在于 src/main/resources 中,但我在该行上得到了空指针。

我想也许 src/main/resources 不是 maven 中的主要(默认)资源文件夹,所以我把它放在 pom 中

<build>

        <resources>
            <resource>
                <directory>src/main/resources</directory>
            </resource>

        </resources>
    </build>

但后来我的 asp 页面停止工作(我不知道为什么),所以我认为有一种方法可以从 src/main/resources 获取资源而不更改 pom

最佳答案

使用这个:

InputStream testIn = getClass().getResourceAsStream("/test.rq");
String queryTemplate = IOUtils.toString(testIn);

IOUtils.toString() 似乎将 InputStream 作为输入,所以我使用了 getResourceAsStream()

我对空指针的猜测是您需要引用类路径的根目录才能访问资源文件,因此我使用了 /test.rq,其中斜线表示根目录。

关于java - Web应用程序java从文件加载资源,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36130122/

相关文章:

java - 为 SSL 套接字上的每个请求创建新进程给出 "TypeError: Cannot serialize socket object",但对普通/非 SSL 套接字做同样的工作

java - 在 Google App Engine - java 中迭代大量记录并聚合整数属性

java - 正则表达式匹配引号外的文本等

python - ': [Errno 2] No such file or directoryile ' in Linux

java - 在JSP中导入org.apache.commons时出现问题

java - ClassNotFoundException : org. apache.log4j.Logger

maven - 如何将环境变量传递给作为 mvn jetty :run? 启动的进程

java - 验证输入。我究竟做错了什么?

python - 使用 Mercurial 跟踪 5 个文件中的微小差异?

java - 带有 Maven 的 Netbeans 平台应用程序因 Bundle.properties 更改而失败