Java 与 Ruby 的 SOAP 处理

标签 java ruby soap savon axis

我需要在使用 Ruby 还是 Java 进行 SOAP 集成之间做出决定。我的整个 Web 应用程序都是基于 Ruby on Rails 构建的,并且有一个重要的后端组件必须使用 SOAP 与遗留系统集成。

Java 拥有广泛的 SOAP 库,如 Apache Axis,并且似乎与这种类型的“遗留”网络服务集成得很好,而 Ruby 则拥有一些 gem ,如 Savon 和 handSOAP。

我偏向于使用 Ruby 库,但担心性能/可伸缩性问题。使用 Ruby 会带来哪些性能/可扩展性问题?

为了获得更多上下文,与遗留系统的集成有两个组成部分:日常流程,其性能不太重要,以及实时查询引擎,其性能非常重要,因为用户在处理查询时正在等待。

最佳答案

我最近遇到了同样的挑战。我最初使用 Java,但最终使用 Builder 将所有内容移植到 Ruby构造请求和Nokogiri用于解析响应。我也用 SoapUI帮助开发/调试请求。

为什么我最终选择了 Ruby 而不是 Java...

  1. 更简单的基础架构。如果不需要,为什么要在架构中使用两种不同的范例。如果您的站点是 Ruby on Rails,除非您需要,否则为什么要在其中引入 Java。
  2. Java 有一些很好的库,例如 Axis,可以将 SOAP 请求转换为对象。但这真的不是什么大问题,但当我的大部分逻辑都在 Ruby 中时,这真的不是什么大问题。对我来说,通过 Nokogiri 使用 DOM 比使用中间 Java 对象要容易得多。
  3. 我的所有逻辑(ActiveRecord 模型对象、验证等)都是用 Java 编写的。我最终不得不复制诸如数据库持久性之类的逻辑以在 Java 代码和 Rails 代码之间进行通信...嘘
  4. 性能问题似乎是在转移注意力。如果您正在发出 SOAP 请求,网络开销可能是您的瓶颈,而不是语言解析/执行。

关于Java 与 Ruby 的 SOAP 处理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5888510/

相关文章:

java - 当我尝试删除对象时,我的 Spring jpaRepository 抛出 TransactionRequiredException

ruby - 从数组强制

xml - go - 标签中的属性/隐藏父标签 : SOAP envelope

node.js - 使用 node-soap 创建 SOAP Web 服务

java - 当我收到错误 "compiled by a more recent version of the Java Runtime (class file version 55.0)..."时如何将 JRE 或 JDK 设置为 Java 11 for IntelliJ

Java - 如何使 Jtextfield 填满整个框架

java - N叉树深度和度数算法

ruby-on-rails - Rails GeoCoder,循环遍历现有数据库和 geocode_by :address, :city, :state

ruby - ffmpeg 在 ruby​​ 中从 mp4 翻录 mp3

java - 未调用 SOAPMessage.writeTo 时 SOAP 服务调用失败