0

java コンポーネント (クラス) を含む spring mvc (クライアント側) と ESB Mule フロー (サーバー側) を使用しています。

クライアント側に「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>

これはGenerateRoutingTableTextFileJava コンポーネントの内部にあります。

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;

つまり、これはプロジェクト内にフォルダーを作成しています。私がやりたいのは、ファイルをクライアント側に送信して、名前を付けて保存... ポップアップが表示されるようにすることです。

どうすればそれをクライアント側にプッシュできますか? 何か案は?

前もって感謝します。

4

0 に答える 0