java - 使用 Jboss7 加载资源返回 null

标签 java jakarta-ee jboss jboss7.x

Jboss7.1如何从java代码加载图片等资源?

这曾经与 Jboss4 一起工作:

this.getClass().getClassLoader().getResourceAsStream("/myapp/includes/images/image1.png");

现在返回 null。

现在使用 Jboss7 在 java 代码中加载资源的最佳实践是什么?

我做了一些测试:

URL url = this.getClass().getResource("");
System.out.println(url);
url = this.getClass().getResource("../../../");
System.out.println(url);
url = this.getClass().getResource("../../../../");
System.out.println(url);
url = this.getClass().getResource("../../../../../");
System.out.println(url);
url = this.getClass().getResource("includes");
System.out.println(url);

13:33:49,143 INFO  [stdout] (http--127.0.0.1-8080-1) vfs:/C:/Eclipse/apps/jboss-as-7.1.1.Final/standalone/deployments/my-ea.ear/my-web.war/WEB-INF/classes/com/xxx/yyy/beans/jsf/
13:33:49,144 INFO  [stdout] (http--127.0.0.1-8080-1) vfs:/C:/Eclipse/apps/jboss-as-7.1.1.Final/standalone/deployments/my-ea.ear/my-web.war/WEB-INF/classes/com/xxx/
13:33:49,150 INFO  [stdout] (http--127.0.0.1-8080-1) jar:file:/C:/Eclipse/apps/jboss-as-7.1.1.Final/modules/javax/activation/api/main/activation-1.1.1.jar!/com/
13:33:49,151 INFO  [stdout] (http--127.0.0.1-8080-1) file:/C:/Eclipse/apps/jboss-as-7.1.1.Final/modules/sun/jdk/main/service-loader-resources/
13:33:49,152 INFO  [stdout] (http--127.0.0.1-8080-1) null

最佳答案

this.getClass().getClassLoader().getResourceAsStream("path") 方法正在处理类路径根目录中的路径。在 WAR 中,这通常是 WEB-INF/classesWEB-INF/lib

您的路径 WebContent/includes/images/ 似乎在您的 WAR 文件的根目录中(不是类路径)。这样你就可以

  • 使用 ServletContextgetResourceAsStream(参见 here)处理 WAR 文件根目录的路径。
  • 将所有图像打包到一个额外的 JAR 中(例如 my-app.resources.jar)并使用 ClassLoader.getResourceAsStream()
  • 在类路径中移动您的图像(见上文)。

关于java - 使用 Jboss7 加载资源返回 null,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10833046/

相关文章:

java - 未指定 @DefaultValue 时 @QueryParam 的默认值是什么?

jsf - @RequestScoped bean 实例是如何在运行时提供给 @SessionScoped bean 的?

java - 在 Prespective 中在 Luna 中安装 PMD 后它没有显示?

jboss - 无法找到 : javax. ws.rs.core.UriInfo 类型的上下文数据

由 maven 构建的 Wildfly 上的 Java LinkageError

jakarta-ee - Java EE 模板引擎推荐?

java - Spring Boot-MVC-RestTemplate : Where to initialize a RestTemplate for a MVC application to consume remote RESTful services

java - JDK9 NetBeans Dev - JNI 教程期间编译错误

java - Java SE 应用程序和 Java EE 应用程序之间的区别?

java - Comparator/able 中的 equals() 与 compareTo()(理论)