クラスパスから単一のファイルを一度に読み取るようにフローを構成する簡単な方法はありますか? ファイルをポーリングする必要はありません。既知のファイルを読み取り、その内容をメッセージ ペイロードとして設定するだけです。
質問する
20700 次
8 に答える
23
set-payload
メッセージ プロセッサと MEL 式を使用します。
<set-payload value="#[Thread.currentThread().getContextClassLoader().getResourceAsStream('my-file.abc')]" />
于 2012-11-02T21:51:34.760 に答える
0
以下を使用できるように、Javaクラストランスフォーマーをスローしようとしています
注:パスは、読み取りたいファイルを含む直接パッケージです。パスをミュール変数内に保存し、ファイルの内容を読み取り、その値をペイロードに保存します
.
public class PayloadFileReader extends AbstractMessageTransformer {
public Object transformMessage(MuleMessage message, String outputEncoding)
throws TransformerException {
String result = "";
try {
result = readFileTest(message.getInvocationProperty("path")
.toString());
} catch (Exception e) {
e.printStackTrace();
}
message.setPayload(result);
return message;
}
public String readFileTest(String path) throws FileNotFoundException,
IOException, Exception {
ClassLoader classLoader = getClass().getClassLoader();
"+classLoader.getResource("samples/v3/addVal-request.sample").getFile());
File file = new File(classLoader.getResource(path).getFile());
FileReader fileReader = new FileReader(file);
BufferedReader bufferReader = null;
StringBuilder stringBuffer = new StringBuilder();
String line;
try {
bufferReader = new BufferedReader(fileReader);
while ((line = bufferReader.readLine()) != null) {
stringBuffer.append(line);
}
} catch (IOException e) {
e.printStackTrace();
} finally {
if (bufferReader != null) {
try {
bufferReader.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
return stringBuffer.toString();
}
于 2015-10-28T09:49:42.600 に答える
0
ファイルを「インポート」しようとする「Spring Bean」を作成できます (Mule XML 構成ファイルを想定します)。以下のサンプルコード:
<spring:beans>
<spring:import resource="classpath:sample-mule-integration.xml"/>
</spring:beans>
または、以下のようにファイルをプロパティプレースホルダーに配置して試すことができます
<context:property-placeholder location="file:E:\NewMuleWorkSpace\springbeanproperties\src\main\resources\property.properties"/>
または、Groovy コンポーネントとサンプル コードを使用してファイルを読み取ることもできます。
File file = new File("C://Users//schiraboina//Desktop//123.txt")
payload=file.getText()
于 2015-12-09T10:29:03.343 に答える
0
<scripting:component doc:name="Get xls File">
<scripting:script engine="Groovy"><![CDATA[new File('C:/project/src/main/resources/account.xls').getText('UTF-8')]]></scripting:script>
</scripting:component>
于 2014-08-25T22:46:52.033 に答える