如何处理Wicket 1.5中的IResourceStreamWriter API更改?

如何处理Wicket 1.5中的IResourceStreamWriter API更改?,wicket,wicket-1.5,Wicket,Wicket 1.5,在Wicket 1.4中,我有一个定制的AbstractResourceStreamWriter(在一种定制的链接中用于流式传输动态生成的文件): 在Wicket 1.5中,接口已更改,因此该方法获得的是一个而不是OutputStream。令人困惑的是,IResourceStreamWriter javadocs仍然在谈论OutputStream: 资源可以在以下情况下返回的特殊IResourceStream实现 它直接希望写入输出流,而不是返回 IResourceStream.getInput

在Wicket 1.4中,我有一个定制的AbstractResourceStreamWriter(在一种定制的链接中用于流式传输动态生成的文件):

在Wicket 1.5中,接口已更改,因此该方法获得的是一个而不是OutputStream。令人困惑的是,IResourceStreamWriter javadocs仍然在谈论OutputStream:

资源可以在以下情况下返回的特殊IResourceStream实现 它直接希望写入输出流,而不是返回 IResourceStream.getInputStream()

实现此方法以直接将资源数据写入 给定输出流

无论如何,我看不到从响应中快速获取输出流的方法

考虑到我有一个方法(上面代码中的调用
generateReport(output,report)
)需要一个OutputStream写入,那么最简单的方法是什么呢

ByteArrayOutputStream baos = new ByteArrayOutputStream();
reportService.generateReport(baos, report);
response.write(baos.toByteArray());
或者类似的东西?

怎么样

ByteArrayOutputStream baos = new ByteArrayOutputStream();
reportService.generateReport(baos, report);
response.write(baos.toByteArray());

或者类似的东西?

有一个org.apache.wicket.request.Response#getOutputStream()。但我也不确定这是否与1.4.x中的相同。在1.5中,这将缓冲您在输出流中写入的内容。javadoc说它不应该被缓冲。

有一个org.apache.wicket.request.Response#getOutputStream()。但我也不确定这是否与1.4.x中的相同。在1.5中,这将缓冲您在输出流中写入的内容。javadoc说它不应该被缓冲。

谢谢,我想这可能行得通。(目前无法验证,因为还有其他1.5迁移问题未解决。)顺便说一句,该变量需要定义为ByteArrayOutputStream;我冒昧编辑了你的答案。谢谢。。。我在以前的一次编辑中删除了它,但没有涉及IDE。我现在也无法测试它,因为我无法从工作中访问我的wicket项目…谢谢,我想这可能会起作用。(目前无法验证,因为还有其他1.5迁移问题未解决。)顺便说一句,该变量需要定义为ByteArrayOutputStream;我冒昧编辑了你的答案。谢谢。。。我在以前的一次编辑中删除了它,但没有涉及IDE。我现在也不能测试它,因为我不能从工作中访问我的wicket项目。。。