Java 非常简单的Glassfish文件传输

Java 非常简单的Glassfish文件传输,java,glassfish,client-server,ejb-3.0,file-transfer,Java,Glassfish,Client Server,Ejb 3.0,File Transfer,我试图将这些文章结合起来:并使用Glassfish制作简单的客户机-服务器应用程序,其中我可以将文件从(本地)客户机发送到(本地)服务器上的目录。这对我来说是一件新鲜事,我现在有点不知所措。有什么建议吗?你有点走错路了。您所看到的是对RPC会话的支持。理论上,您可以发送一个巨大的字节数组,但这样做可能是不明智的 最好是创建一个简单的web应用程序并通过HTTP推送文件 或者您可以尝试使用为配置的WS-Web服务,它也将处理大型有效负载。您可以查找流式MTOM消息的文章。它是用于WebLogic的

我试图将这些文章结合起来:并使用Glassfish制作简单的客户机-服务器应用程序,其中我可以将文件从(本地)客户机发送到(本地)服务器上的目录。这对我来说是一件新鲜事,我现在有点不知所措。有什么建议吗?

你有点走错路了。您所看到的是对RPC会话的支持。理论上,您可以发送一个巨大的字节数组,但这样做可能是不明智的

最好是创建一个简单的web应用程序并通过HTTP推送文件

或者您可以尝试使用为配置的WS-Web服务,它也将处理大型有效负载。您可以查找流式MTOM消息的文章。它是用于WebLogic的,但基本上是Sun JAX-WS,所以它应该可以在现成的Glassfish上工作

Web服务的一个优点是,您可以将其托管在EJB中,而不必为此设施部署单独的WAR。您需要注意的是将有效负载全部存储在RAM中。例如,如果您想要发送一个10Gb文件,实际的通信量将是相同的,但这样做很幼稚,最终将在客户端和/或服务器上的堆中保留所有10Gb,这显然是不可取的

最终,任何一种方法都会奏效。Web服务的缺点是必须深入到Web服务堆栈的阴暗角落,与普通Servlet和Web应用程序一样,它更多地是公开的,但是您可能会深入到HTTP的内部深处来实现这一点。例如,如果您想使用ApacheHTTP客户机,则需要创建一个自定义RequestEntity来为您处理流

所有可能的情况下,它只是较少使用,而不是默认的,开箱即用的,2行代码教程示例