我使用 spring mvc(客户端)和 ESB Mule 流(服务器端),其中包括 java 组件(类)。
事情是我在客户端有一个“EXPORT”按钮,当单击它时会触发 ESB Mule 中的 SELECT * FROM 表,然后在 java 组件中使用该信息创建一个文件服务器端:
这是骡流(添加了通用名称)
<flow name="EXPORT_TABLE_DATA">
<ajax:servlet-inbound-endpoint channel="/export_table" responseTimeout="10000"/>
<jdbc:outbound-endpoint exchange-pattern="request-response"
queryKey="export_table_data"
queryTimeout="-1"
connector-ref="ExtendedRoutingConnector">
<jdbc:query key="export_routing_table_data"
value="SELECT * FROM table_name"/>
</jdbc:outbound-endpoint>
<component class="com.web.esb.component.GenerateRoutingTableTextFile" />
</flow>
这是在GenerateRoutingTableTextFile
Java 组件内部。
File dir = new File("routing-data");
if(!dir.exists()) {
dir.mkdir();
}
BufferedWriter writer = new BufferedWriter(new FileWriter(dir +"/" + "tabledata_" + System.currentTimeMillis() + ".txt"));
ArrayList<CaseInsensitiveHashMap> arrayList;
try{
arrayList = (ArrayList) eventContext.getMessage().getPayload();
for(CaseInsensitiveHashMap map : arrayList){
writer.write("** data line from SQL Query **"));
writer.newLine();
}
writer.close();
} catch (Exception e){
writer.close();
e.printStackTrace();
}
return writer;
事情是,这是在项目中创建一个文件夹。我想做的是将文件发送到客户端,以便弹出另存为...。
我怎样才能将它推送到客户端?有任何想法吗?
提前致谢。