簡體   English   中英

MissingResourceException:運行 JAR 時找不到基本名稱的捆綁包

[英]MissingResourceException: Can't find bundle for base name when running JAR

I made a maven spring-boot project using Spring Initializr and added the basic dependencies like starter-web, tom-cat-jasper, dev-tools and etc.. then imported it in Eclipse.

然后我在我的本地存儲庫中添加了一個新的外部 JAR 不是來自 maven 存儲庫使用

mvn install:install-file

並在 pom.xml 中添加了新的依賴項

<dependency>
  <groupId>com.domain.project</groupId>
  <artifactId>resourceName</artifactId>
  <version>1</version>
</dependency>

這個外部 JAR 有一個需要添加的屬性才能連接到數據庫。 我將 this.properties 文件放在src/main/resources中並測試了外部 JAR 中的方法,它按 Eclipse Z581D6381F3F35E4F96D77201ACF87B 中的預期工作。

在此之后,我將項目運行為 Maven 構建目標:全新clean install ,以便它可以作為可執行文件 JAR 運行。

然后我運行 JAR 並使用 a.bat 文件start java -jar一切正常,但每當我使用來自外部 JAR 的方法時,它通過 GET/POST 請求給出錯誤:

java.util.MissingResourceException: Can't find bundle for base name resourceName, locale en_US
    at java.util.ResourceBundle.throwMissingResourceException(ResourceBundle.java:1581) ~[?:1.8.0_241]
    at java.util.ResourceBundle.getBundleImpl(ResourceBundle.java:1396) ~[?:1.8.0_241]
    at java.util.ResourceBundle.getBundle(ResourceBundle.java:782) ~[?:1.8.0_241]
    at com.domain.project.vitality.VitalityInfo.VitalityInfoDetails(VitalityInfo.java:28) ~[resourceName-1.jar!/:?]

這是外部 JAR 的名稱:resourceName.jar 和所需的屬性文件:resourceName.properties。

如果我在 Eclipse IDE 的src/main/resources中重命名或刪除 required.properties 文件,我也會遇到此錯誤。

If I run the project only in Eclipse IDE and access the said external JAR methods via GET/POST request it gives the usual JDBC SQL error.

每當我使用 maven 構建時,我該如何解決這個問題,非常感謝任何幫助?

編輯:這是使用 maven 構建時可執行 JAR 的jar tf的結果。

BOOT-INF/classes/application.properties
BOOT-INF/classes/resourceName.properties
BOOT-INF/classes/log4j2-spring.xml

編輯:問題已解決。

原來解決方案相當簡單。
在我的情況下,外部 JAR 在其實現中具有此功能

ResourceBundle bundle = ResourceBundle.getBundle("resourceName");

我把它改成了

ResourceBundle bundle = ResourceBundle.getBundle("application");

只需將 resourceName.properties 文件重命名為 application.properties 或將 resourceName.properties 中的內容復制到您的 application.properties 或 spring-boot 能夠讀取的任何屬性文件中。

暫無
暫無

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

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