【问题标题】:MissingResourceException - Bundle not found during maven integration-test phaseMissingResourceException - 在 Maven 集成测试阶段找不到捆绑包
【发布时间】:2012-12-15 15:28:14
【问题描述】:

我正在使用 maven 构建一个多语言网站。

属性文件存放在 /src/main/resources

maven在构建阶段生成的war包含WEB-INF/classes中的*.properties文件。如果我将此 war 文件部署到生产环境,则不会抛出 MissingResourceException。

所以除了在集成测试中出现 MissingResourceException 之外,一切正常。顺便说一句,由于 failsafe-maven-plugin 可以执行集成测试。

那么在集成测试阶段出了什么问题?

真正奇怪的是我可以在集成测试期间加载另一个属性文件(不是为了 I18N 目的)。唯一的区别是我使用 FileReader,而不是使用 ResourceBundle.getBundle。

我错过了什么吗?

提前感谢您的帮助。

【问题讨论】:

    标签: maven


    【解决方案1】:

    使用 FileReader 无法设置字符编码。最好使用new InputStreamReader(new FileInputStream(file), "ISO-8859-1"),它是明确的、独立于操作系统的。而 ISO-8859-1 是属性的标准编码(丑陋)。

    除了 /src/test/resources 还应该找到 /src/main/resources。

    你检查过 /target/classes 了吗?

    复制阶段可能出错(准备资源、准备测试资源等)。 也许是类相关的getClass().getResourceAsStream(relativePath)

    【讨论】:

    • 感谢您的回复。回答您的问题:I18N 文件位于 /target/classes 中,我不使用 getClass().getResourceAsStream(relativePath) 之类的东西,我使用 ResourceBundle.getBundle("baseName")。我不明白的是,我们有测试阶段(maven-surefire-plugin)然后是打包阶段(maven-war-plugin),然后是应该使用战争的集成测试阶段(failsafe-maven-plugin)之前生成的文件(这个在生产中工作的war文件),如果我检查它,I18N文件就在里面。我在maven进程上错了吗?
    • 看起来不错(对我来说);也可以查看.m2 maven 存储库;使用 7zip/WinZip 检查战争。
    • 我刚刚检查了 ~/.m2/repository 中的战争,并且 I18N 属性文件丢失,但其他属性文件在那里。我们走在正确的轨道上!我在之后添加了 18n 个文件,因此在 ~/m2 文件夹中更新该战争存在问题。我只是尝试执行 mvn clean 并增加 pom.xml 中的版本并重新启动该过程,但在集成测试期间异常仍然存在,因此在 ~/.m2/repository 文件夹中不再安装 .war 。
    • 一种技巧是将资源移动到另一个 maven 项目中。也许将详细程度 -v 设置为 on,可能有助于跟踪问题。此外,测试本身可能会以自己的方式指定事物。 - 抱歉,我对远程帮助不大。
    • 好的,我发现出了什么问题,我会发布答案。非常感谢您的帮助。
    【解决方案2】:

    好的,问题是“只是”我用来获取捆绑包的 baseName :

    ResourceBundle.getBundle("/MyBundle");

    而不是

    ResourceBundle.getBundle("MyBundle");

    尽管如此,这是一个奇怪的行为,因为第一行代码在部署 .war 时运行良好,但在集成测试期间却不行。如果有人知道为什么,我真的对答案很感兴趣!

    【讨论】:

    • 我认为你搞反了... ResourceBundle.getBundle("MyBundle");
    猜你喜欢
    • 2016-06-13
    • 2016-05-02
    • 2014-03-21
    • 2017-12-12
    • 2012-01-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多