3

我有包含另一个 WAR 的 EAR。项目结构如下图:

project.ear
 |-- lib
 |-- META-INF
 |-- project-web.war
 |    |-- META-INF
 |    |-- WEB-INF
 |    |    |-- classes
 |    |    |    `-- com
 |    |    |         `-- example
 |    |    |              `-- services
 |    |    |                   `-- ListPageService.class
 |    |    |-- lib
 |    |    |-- web.xml
 |    |    `-- weblogic.xml
 |    `-- content.html
 `-- project-services.jar

在 WAR 中,有一个ListPageService需要读取content.html文件的 JAX-RS 类。如何访问该文件?

4

2 回答 2

3

获取 WAR 文件中资源的常用方法是通过ServletContext.getResourcegetResourceAsStream. 您应该能够ServletContext通过声明一个带有注释的字段来访问 JAX-RS 类中的javax.ws.rs.core.Context

@Context ServletContext servletContext;

然后在请求处理方法中你可以说

URL content = servletContext.getResource("/content.html");
// alternatively
// InputStream content = servletContext.getResourceAsStream("/content.html");
于 2012-12-21T15:03:41.180 回答
2

编辑:这个答案不再适用于现在制定的问题。建议的方法仅适用于从类路径获取资源。

看看Class.getResourceAsStream方法。它允许您访问在类路径中找到的文件。

于 2012-12-21T12:42:00.637 回答