簡體   English   中英

來自Java EE Application Server的數據流

[英]Data Streaming from Java EE Application Server

我需要從Application Server(JBoss)檢索一個大文件(千兆字節)並避免將其加載到內存中,我想通過EJB流式傳輸它。

是否可以將數據作為流從Application Server中取出?

創建一個HttpServlet ,流式傳輸該文件。

更新小心標題。 您不能通過setContentLength()設置ContentLength-Header,因為它只接受int

你必須設置它: setHeader("Content-Length", (long)length)

也許這會有所幫助: 使用ServletOutputStream在沒有內存問題的Java servlet中編寫非常大的文件

有一個限制,但它取決於客戶端。 如果客戶端將文件保存在內存中,則無法正常工作。

通過EJB你的意思是遠程bean? 這些bean通常基於RMI,而RMI又使用Java序列化。 您無法使用RMI流式傳輸數據。

但是對於servlet和HTTP,這將非常簡單。 只需將FileInputStream打開到您的大文件並將其逐字節復制到servlet輸出

要記住:

  • 使用輸入文件緩沖
  • 在最開始設置Content-Length標頭,以便客戶端知道剩余多少數據

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM