ユースケース: Java でのファイル コンテンツの読み取り(cloud-hub にデプロイ)。
問題: ファイルを読み取り、その内容がコンソールに記録される Java クラスを作成しましたが、同じコードをクラウド ハブに移動すると、File-not-Found 例外が発生します。
質問: src/main/resources フォルダー構造が利用できないことを理解しています。コードが cloudhub を介して実行されている場合、 Fileインスタンスの作成中に使用されるファイルの場所は何ですか?
これは、ローカル環境でのみ機能するコード スニペットです。
package com.testUtil;
import org.mule.api.MuleEventContext;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
import org.mule.api.lifecycle.Callable;
public class TestClass implements Callable {
@Override
public Object onCall(MuleEventContext eventContext) throws Exception {
System.out.println("Files and directories present at src/main/resources are :");
File folder = new File("./src/main/resources/");
File[] listOfFiles5 = folder.listFiles();
for (int i = 0; i < listOfFiles5.length; i++) {
if (listOfFiles5[i].isFile()) {
System.out.println("File " + listOfFiles5[i].getName());
} else if (listOfFiles5[i].isDirectory()) {
System.out.println("Directory " + listOfFiles5[i].getName());
}
}
System.out.println("expected output is: xsd");
FileReader fr = new FileReader(folder+"/xsd/Request.xsd");
BufferedReader br = new BufferedReader(fr);
String contents="";
String s="";
while((s = br.readLine()) != null) {
contents+=s;
}
System.out.println(contents);
fr.close();
return contents;
}
}
しかし
this.getClass().getResource("./").getPath();
./mule-3.4.1-R35/conf を出力として提供します。
以下のスニペットで試してみましたが、それでも FileNotFoundException
FileReader fr = new FileReader(this.getClass().getResource("./").getPath()+"/xsd/Request.xsd");
助けてください !!ありがとう