Java 什么';返回文件作为响应的正确方法是什么?

Java 什么';返回文件作为响应的正确方法是什么?,java,jax-rs,apache-wink,Java,Jax Rs,Apache Wink,基本上,我需要提供REST服务,该服务将接收字符串param,使用该param从另一个系统获取文件,然后将获取的文件作为响应返回 其效果应与用户单击pdf或任何其他二进制文件链接,浏览器提示用户保存/下载该文件时的效果相同 有两点: 是否可以流式传输文件(在从源系统接收字节时发送字节)。换句话说,如何处理非常大的文件 同样与流相关的是,当使用常规的HttpServletResponse时,我是否必须等到一个大文件被完全读取到return response.build() 如何使用Apache

基本上,我需要提供REST服务,该服务将接收字符串param,使用该param从另一个系统获取文件,然后将获取的文件作为响应返回

其效果应与用户单击pdf或任何其他二进制文件链接,浏览器提示用户保存/下载该文件时的效果相同

有两点:

  • 是否可以流式传输文件(在从源系统接收字节时发送字节)。换句话说,如何处理非常大的文件
  • 同样与流相关的是,当使用常规的HttpServletResponse时,我是否必须等到一个大文件被完全读取到
    return response.build()
如何使用ApacheWink执行此操作


PS对不起,这对Wink大师来说可能很琐碎,但我才刚刚开始思考。

您可以从您的方法返回
java.io.File
。如果愿意,可以用
响应
将其包装起来。Wink将处理流媒体。流式处理不会在调用
response.build()
时启动,而是在方法完成时启动

如果需要正确的下载对话框,应返回正确的
内容配置
标题。看