【问题标题】:Getting wrong path resource from a web project java从 web 项目 java 中获取错误的路径资源
【发布时间】:2017-05-13 00:25:01
【问题描述】:

这是我的 maven web 项目结构,我使用的是 java 8 + netbeans + jboss eap 6。

Project
|__/src
  |__/main
    |__/java
    |__/resources
    | |__/velocity
    |     -template.vm
    |__/webapp

一旦应用程序运行,我将尝试以这种方式获取资源路径 /proyect/src/main/resources/velocity/:

String path = SomeClass.class.getResource("/" + templateName).getPath();

但是我在 jboss EAP /bin 文件夹中得到了这样的路径:

C:/Users/MyUser/EAP-6.4.0/bin/content/MyWebApp.war/WEB-INF/classes/velocity/

显然这条路不存在。

【问题讨论】:

    标签: maven jakarta-ee jboss velocity


    【解决方案1】:

    您似乎正在使用Apache Velocity Engine,您需要将其配置为使用ClasspathResourceLoader

    那么你可以简单地使用路径/velocity/template.vm进行模板处理。

    【讨论】:

    • 是的,我就是这样做的。我正在将该路径设置为速度的属性VelocityEngine.FILE_RESOURCE_LOADER_PATH
    • 您需要将这些文件加载​​为 classpath 资源,而不是 file 资源,因为它们存在于 war 文件中,并且可能无法直接在文件系统。
    • 我想指令 SomeClass.class.getResource() 查找类路径,对吧?
    • 是的,但是那个特定的化身将产生一个相对于包含 SomeClass 的包的资源。您应该查看stackoverflow.com/questions/3861989/…的答案以获得彻底的了解
    猜你喜欢
    • 2016-02-09
    • 2012-09-13
    • 2021-11-15
    • 2013-08-11
    • 2016-04-13
    • 2013-01-06
    • 1970-01-01
    • 2016-09-26
    • 2011-04-24
    相关资源
    最近更新 更多