が、私は(その場で生成されますファイルをストリーミングするためのリンクのカスタム種類で使用)のカスタムAbstractResourceStreamWriterを持っていた:Wicket 1.5でIResourceStreamWriter APIの変更を処理する方法は? Wicketの1.4では
private AbstractResourceStreamWriter resourceStreamWriter() {
return new AbstractResourceStreamWriter() {
@Override
public void write(OutputStream output) {
try {
reportService.generateReport(output, report);
} catch (ReportGenerationException e) {
// ...
}
}
@Override
public String getContentType() {
return CONTENT_TYPES.get(report.getOutputType());
}
};
}
は、Wicketの1.5では、IResourceStreamWriterインタフェースはそう変更されましたこのメソッドはOutputStreamの代わりにResponseを取得します。 IResourceStreamWriterのjavadocを、まだのOutputStreamについて話すことにやや紛らわしいです:それは直接出力ストリームに書き込む代わりに IResourceStream.getInputStreamを(返却したい場合 リソースを返すことができることを
特別IResourceStream実装)
...
このメソッドを実装して、リソースデータを のOutputStreamに直接書き込むことができます。
とにかく、ResponseからOutputStreamを取得する方法はありません。
OutputStreamが書き込むことを期待するメソッド(上記のコードgenerateReport(output, report)
)があるとすれば、この作業をやり直す最も簡単な方法は何ですか?
ありがとう、私はそれが動作すると思います。 (他の1.5の移行の問題が未解決であるため、今は検証できません).Btwでは、変数をByteArrayOutputStreamとして定義する必要があります。私はあなたの答えを編集する自由を取った。 – Jonik
ありがとう... IDEを使わずに前回の編集で削除しました。私は仕事から私の改札プロジェクトにアクセスすることができないので、私はあまりにも今それをテストすることはできません... – Nicktar