我有一个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中失败了。
更新
通过结合@Learner的答案和this帖子中的一些信息,我设法找到了解决这个问题的方法。我已经将我的Java类更新为以下内容,这在Studio和Standalone中都有效:
fr = new FileReader(MyClassName.class.getResource("/map.xml").getPath());
更新
如何修复mule-app.properties文件?如果相同那么它也可以在onCloudHub上工作。
答案 0 :(得分:2)
有几种方法可以做到这一点:
你可以像这样读取资源,src / main / resources下的文件在你的类路径中
InputStream is = this.getClass()。getResourceAsStream(" map.xml");
另一种推荐的方法是将变换器创建为spring bean
,并通过spring注入外部map.xml文件依赖。
答案 1 :(得分:0)
通常当你在 src / main / resources 的路径中放置它时,它来自classpath ...在Standalone中它也应该从那里得到它...如果没有,那么你可以把它放在独立的conf文件夹,其中保存所有属性文件并尝试