我正在尝试合并这些文章:http://java.sun.com/developer/technicalArticles/RMI/rmi_corba/和http://netbeans.org/kb/docs/javaee/entappclient.html来使用Glassfish创建简单的客户端 - 服务器应用程序,我可以在其中将文件从(本地)客户端发送到(本地)服务器。这对我来说是新鲜事,我觉得此刻有点不知所措。有什么建议吗?
答案 0 :(得分:2)
你在错误的地方。您正在查看的内容是支持RPC会话。从理论上讲,你可以发送一个巨大的字节数组,但这样做可能是不明智的。
最好是创建一个简单的Web应用程序并通过HTTP推送文件。
或者您可以尝试使用为MTOM配置的WS Web服务 - 它也将处理大型有效负载。您可以查看here以获取有关流媒体MTOM消息的文章。它适用于WebLogic,但它基本上是Sun JAX-WS,所以它应该可以在Glassfish上使用。
Web Service的一个优点是您可以将其托管在EJB中,而不必为此工具部署单独的WAR。您需要注意的是将有效负载全部存储在RAM中。例如,如果你想发送一个10Gb文件,实际的流量将是相同的,但天真地完成,你将最终在客户端和/或服务器上的堆中保存所有10Gb,这显然是不可取的
最终任何一种方式都可行。 Web服务的缺点是不得不深入挖掘Web服务堆栈的阴影角落,与通用的Servlet和Web应用程序一样,它更公开,但是你可能会潜入HTTP的内部深度将其拉下来。例如,如果您想使用Apache HTTP Client,则需要创建一个自定义RequestEntity来为您处理流式传输。
所有可能的,它只是使用较少而不是默认的,开箱即用的,2行代码教程示例。