2011-07-04 68 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很稳定,所以它应该可以正常工作。

相关问题