文字列を引数として取得し、いくつかの R スクリプトを呼び出して実行する Java コードを作成しました。scrip は .PNG ファイル (サービスの結果) を生成します。これをWebサービスとして公開し、後でWebサイトによって(サービスクライアントとして)消費されることになっています。
誰かがこれを行う方法についての指針を教えてもらえますか? それを行うためのチュートリアルはありますか?
文字列を引数として取得し、いくつかの R スクリプトを呼び出して実行する Java コードを作成しました。scrip は .PNG ファイル (サービスの結果) を生成します。これをWebサービスとして公開し、後でWebサイトによって(サービスクライアントとして)消費されることになっています。
誰かがこれを行う方法についての指針を教えてもらえますか? それを行うためのチュートリアルはありますか?
これは、入力を受け取って出力を返す Web サービスを設計することと大差ありません。ここでの唯一の違いは、テキスト データではなくバイナリ データを返すことです。
バイナリ データを返す場合、Java メソッドの戻り値はバイト配列 ( byte[]
) である必要があります。R スクリプトからファイルを取得したら、png
それをバイト配列に完全に読み取り、その配列を返します。
この Java コードの上に Web サービス レイヤーを生成すると、バイナリ データをテキスト形式に変換する「グルー」コードが生成されます。
ファイルがすぐに完成しないという問題は、png
Web サービスとは関係ありません。Java コードは R スクリプトを呼び出し、それが終了するのを待ってから、ファイルをバイト配列に読み取ります。Web サービスクライアントがサイクル全体が終了するまで待機している限り、問題はありません。Web サービスクライアントが適切なタイムアウト設定で構成されていることを確認してください。
私はこれまで行ったことはありませんが、.png ファイルを byte[] に出力し、Apache Commons の Base64 クラスを使用してそれを文字列に変換し、XML 応答で返すことができます。