3

Java コンポーネントを使用して CSV ファイルを XML に変換する Mule CE アプリケーションがあります。私の Java クラスは、という名前の flatpack XML ファイルにアクセスする必要がありますmap.xml- 私はこれを に配置しましたsrc/main/resources。私のJavaクラスはsrc/main/java. map.xml現在、次のように Java クラスのファイルにアクセスしています。

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 とスタンドアロンの両方で機能するように、このファイル パスを共通にする方法はありますか? 私も簡単fr = new FileReader("map.xml");に試してみましたが、これは Studio で失敗します。

アップデート

@Learner からの回答とこの投稿の情報を組み合わせることで、この問題の解決策を見つけることができました。Java クラスを次のように更新しましたが、これは Studio とスタンドアロンの両方で機能しました。

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

アップデート

mule-app.properties ファイルを取得するには? 同じ場合、CloudHub でも機能します。

4

2 に答える 2

3

これを行うには、いくつかの方法があります。

  1. このようにリソースをストリームとして読み取ることができます.src/main/resourcesの下のファイルはクラスパスにあります

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

  2. もう 1 つの推奨される方法は、トランスフォーマーを として作成し、spring beanSpring を介して外部の map.xml ファイルの依存関係を注入することです。

于 2014-04-22T12:48:42.980 に答える