如果服务器和客户端仅使用 Java,那么与 Axis2 实现的 SOAP 相比,RMI 是否会更高效(带宽和延迟)?我知道 RMI 近年来已经不再流行,但这并不意味着它不能使用。
XML-RPC 怎么样?
最佳答案
RMI 有一些有趣的功能并且相当快,但也有一些问题:
- 您必须确保要序列化的所有内容都实现可序列化。
- 您必须确保服务器和客户端具有完全相同的所有可序列化类的版本,并且在完全相同的时间部署,并且您序列化的每个类(包括可序列化对象持有的字段)都使用serialVersionUID适本地。否则你将陷入痛苦的世界(阅读:“串行版本不匹配”)。
- 您必须确保您序列化的类不会保留对最终保留对大对象的引用的对象的引用,否则您会对通过网络传输的数据包的大小感到非常惊讶。
- 如果您决定通过 Java 以外的任何方式访问服务,则必须编写另一个远程访问层。
- 没有#5。
实际上,这些天我几乎总是推荐 REST 服务。创建小型 Java 对象并使用 Gson 或 Jackson 或其他东西来回编码数据非常容易,因此相比之下,RMI 的优势微乎其微。
关于java - Java RMI 是 Axis2 SOAP 的良好替代品吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14945014/