簡體   English   中英

Java EE應用程序中的Resources文件夾

[英]Resources folder in a Java EE application

我正在開發一個簡單的郵件發件人作為Java EE應用程序。

項目結構如下:

Java EE app proj結構

要正確設置電子郵件內容,我需要讀取放在資源文件夾中的*.vm文件,我應該將其作為路徑classpath:/templates/mail/*.vm (與Spring一樣 )...但我的假設是錯誤!

  1. 哪個是正確的使用途徑?

  2. 我應該使用META-INF文件夾嗎? 這個解決方案是否更符合java-ee 在那種情況下,我在哪里將META-INF文件夾放在我的項目結構中?


更新:

我將項目打包為.war ,然后我將文件放入:

/src/main/webapp/WEB-INF/classes/templates/mail/

然后:

org.apache.velocity.Template t = myVelocityEngine.getTemplate("classpath:/templates/mail/account_to_confirm.vm",
                    "UTF-8");

盡管如此,應用程序在運行時返回錯誤:

Unable to find resource 'classpath:/templates/mail/account_to_confirm.vm'

我究竟做錯了什么?


只是為了更好地理解:

假設我想將這個應用程序部署為jar (當然要刪除servlet類):在這種情況下,我是否應該編輯文件夾布局以便仍然使用相同的路徑進入源代碼?

如果可以,請使用Classloader.getResourceAsStream(“templates / mail / * .vm”); 或類似的getResourceAsURL方法。

如果沒有,請查看資源中的文件放在WAR中的哪個位置 在您的情況下,該文件應位於/ WEB-INF / classes / templates / mail中。

我認為問題是由前綴classpath:你在哪里發現你必須使用它?

您可能會發現有用的理解如何初始化VelocityEngine讀取在jar文件中加載速度模板以及如何在Velocity中配置資源 加載器

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM