2011-07-04 86 views
1

我需要爲java客戶端提供一種將文件發送到運行在應用程序服務器中的另一個應用程序的方法。我不需要處理文件,但是在收到文件時執行一些操作。如何將文件從Java客戶端傳輸到Java服務器?

有什麼好的方法來實現這種溝通?

我能想到的EJB,但我不知道這是最好的選擇,因爲我不需要在內存中的照片,同爲Web服務...

另一種選擇可能是打開一個FTP服務器,但我想知道是否有一個很好的替代方案來與Java做到這一點。

任何發生或建議? 謝謝!

+0

你有什麼限制? –

+0

試試套接字? – Dimitri

+0

您可以從InputStream中讀取塊,並立即將它們寫入磁盤,無需將整個文件存儲在內存中。 – Luciano

回答

2

我強烈建議Netty該文檔很好,實現起來很簡單,您可以通過自己需要的自定義管道發送任何東西。另外,他們還預先創建了幫助程序類來發送文件,並在客戶端和服務器上執行一些預處理/後處理工作。

+0

偉大的選擇,即使這個問題沒有遵循「好/錯答案」的模式,我贊成所有的好答案,並選擇這一個作爲獎勵它是我最喜歡的一個,因爲我沒有'不知道Netty的存在。謝謝! – edutesoy

+0

謝謝。我發現它一段時間後發現它是最好的選擇。 Apache也有類似的系統,但是我發現它比較混亂,文檔不太好。 –

4

您可以將文件上傳到Servlet,例如,在POST請求中使用Apache HTTPClientMultiPartEntity

+1

而在服務器端,使用[Commons FileUpload](http://commons.apache.org/fileupload/)來處理數據。 –

1

如果您使用EJB,那麼您正在使用RMI。您可以嘗試使用RMIIO來傳輸數據。我從來沒有使用它,但它聲稱做到了你想要的。這很舊,但是RMI很穩定,所以它應該可以正常工作。

相關問題