与Java EE服务器通信的最佳实践

时间:2011-08-11 07:16:25

标签: java web-services remoting

我们有一个Swing应用程序。现在我需要设置一个Java EE服务器,为LAN上的这些Swing客户端提供一些服务。

考虑到客户端和服务器以两种方式进行通信,实现此目的的最佳做法是什么?

6 个答案:

答案 0 :(得分:2)

如果客户端在局域网中并且您正在编程双方,我将采用RMI。因为它比Webservices更高效。我认为这是与Java EE Server进行通信的本地方式。

也许您应该在服务器端创建提供服务的Facade类。

答案 1 :(得分:1)

将JAX-RS与具有XML或JSON数据格式的JerseyApache CXF等实现一起使用是一个不错的选择。

答案 2 :(得分:1)

如果您需要灵活性,请使用Spring remoting,因为它会对远程处理层进行抽象,因此最终的实施更改会让您的手保持清洁。

我使用HTTP Invoker,因为它是轻量级的并且使用了java序列化,因此它是Java客户端的一个很好的选择 - > Java服务器通信。

与RMI相比,HTTP Invoker的缺点是您总是从服务器获取对象的新实例,因此如果在服务器上更改了从客户端发送的对象,则更改将不会反映在客户端实例。

好消息在这里:Considerations when choosing a technology

答案 3 :(得分:0)

我建议使用Webservices

答案 4 :(得分:0)

  • RMI - 这对Java应用程序来说非常好,但它的一般互操作性很低。如果我想你想从Swing切换到其他技术或者添加另一个不用Java编写的客户端,那么RMI就是噩梦。

  • 网络服务 - 它不包括双向通信。它适用于Swing - Java EE,但你必须在Swing端做一些WS(或任何其他暴露机制)来处理Java EE - Swing通信。例如。比如Java EE上的REST和Swing上的XML-RPC。

您还可以考虑使用 ESB

答案 5 :(得分:0)

如果您有Java EE服务器并且更愿意遵守Java EE规范标准,我建议使用Spring RPC或EJB 3 Web服务不是二进制文件,因此会遇到性能问题。