繁体   English   中英

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

[英]Mule - how to access files in src/main/resources in Java class when running in Studio and Standalone?

我有一个Mule CE应用程序,它使用Java组件将CSV文件转换为XML。 我的Java类需要访问名为map.xml的flatpack 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 (No such file or directory)

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

UPDATE

通过从@Learner答案,并在一些信息的组合这个帖子,我已经成功地找到解决这个问题。 我已将我的Java类更新为以下内容,这在Studio和Standalone中都有效:

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

UPDATE

如何修复mule-app.properties文件? 如果相同那么它也可以在onCloudHub上运行。

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

  1. 您可以像这样读取资源,src / main / resources下的文件位于类路径中

    InputStream是= this.getClass()。getResourceAsStream(“map.xml”);

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

通常,当你在src / main / resources中的路径中放置它时,它来自classpath ...在Standalone中也应该从那里获取它...如果没有,那么你可以将它放在独立的conf文件夹中,其中保存所有属性文件,试试

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM