gpt4 book ai didi

java - Mule - 在 Studio 和 Standalone 中运行时如何访问 Java 类中的 src/main/resources 中的文件?

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:48:19 25 4
gpt4 key购买 nike

我有一个 Mule CE 应用程序,它使用 Java 组件将 CSV 文件转换为 XML。我的 Java 类需要访问一个名为 map.xml 的平面包 XML 文件 - 我已将其放在 src/main/resources 中。我的 Java 类在 src/main/java 中。我目前正在访问我的 Java 类中的 map.xml 文件,如下所示:

fr = new FileReader("src/main/resources/map.xml");

这在 Mule Studio 中运行良好,但是当我尝试在 Mule Standalone 中运行该应用程序时,出现以下错误:

java.io.FileNotFoundException: src/main/resources/map.xml(没有那个文件或目录)

有没有办法让这个文件路径相互共享,以便它在 Studio 和 Standalone 中都能工作?我也简单地尝试过 fr = new FileReader("map.xml"); 但在 Studio 中失败了。

更新

结合@Learner 的回答和 this 中的一些信息帖子,我设法找到了解决这个问题的方法。我已将我的 Java 类更新为以下内容,这在 Studio 和 Standalone 中都有效:

fr = new FileReader(MyClassName.class.getResource("/map.xml").getPath());

更新

如何获取 mule-app.properties 文件?如果相同,那么它也适用于 CloudHub。

最佳答案

有几种方法可以做到这一点:

  1. 你可以像这样读取资源作为流,src/main/resources 下的文件在你的类路径中

    InputStream = this.getClass().getResourceAsStream("map.xml");

  2. 另一种推荐的方法是将转换器创建为 spring bean 并通过 spring 注入(inject)外部 map.xml 文件依赖项。

关于java - Mule - 在 Studio 和 Standalone 中运行时如何访问 Java 类中的 src/main/resources 中的文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23214875/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com