【问题标题】:How can I create a SOAP server in Perl?如何在 Perl 中创建 SOAP 服务器?
【发布时间】:2014-04-15 11:34:57
【问题描述】:

我正在与第三方供应商合作,不幸的是,该供应商要求我们设置一个 SOAP 服务器来处理来自他们的请求。我很难找到解决这个问题的最佳方法。我强加的一个限制是它作为 mod_perl2 处理程序运行。经过一番搜索,我发现最好的方法可能是使用 XML::Compile 及其 SOAP 类,但我很难理解它。部分问题是我对 SOAP 的理解有限,而且大多数模块的文档对我来说似乎有点神秘。

那么,谁能给我一些指导,示例代码,什么?

编辑:我们还获得了一个要使用的 WSDL 文件,这与 SOAP::WSDL 不兼容(“在 ... 看起来像 rpc/literal WSDL,SOAP::WSDL 不支持)

编辑:当使用带有 XML::Compile::WSDL11 的 WSDL 时,XML::Compile::SOAP 抱怨“此版本不支持 RPC 编码”。我可以/应该不用担心 WSDL 文件吗?

【问题讨论】:

  • 仅供参考,我最终得到的解决方案比我想要的要干净得多.. 使用 SOAP::Parser 仅提取我需要的信息并使用输出 XML 的模板填充其中需要存在的价值。我仍然很好奇是否有一种简单的方法可以从一个主要独立于 Web 服务器的 WSDL 文件创建一个简单的 SOAP 服务器。
  • 注意:SOAP::Parser 是一个糟糕的选择,即使它有效。这是我必须从源代码安装的旧模块,因为它具有 mod_perl 作为依赖项。它还为我破坏了 SOAP::Lite。

标签: perl soap


【解决方案1】:

如果您对 SOAP 的了解有限,请先阅读有关 SOAP 的内容,然后再考虑实现它。那里有很多SOAP tutorials。大多数文档对您来说可能看起来很神秘,因为您还不了解 SOAP。

这不是一个棘手的过程。就大步骤而言,它与任何其他网络编程都没有什么不同:

  • 您收到一个 SOAP 请求,它是一些 XML。
  • 您拆开 XML 来弄清楚该怎么做。
  • 您将一些 XML 放在一起作为响应发送。
  • 您返回响应。

XML::Compile 将为您处理大部分细节。

在开始编写自己的服务器之前,您可能会考虑为现有的 SOAP 服务器编写客户端,只是为了给自己一些练习。

【讨论】:

  • 我实际上已经查看了 XML::Compile::SOAP,但还没有弄清楚如何将它们结合在一起。另外,我想使用给我们的 WSDL 文件。
  • 不要从代码开始。从学习 SOAP 开始。在那之前你不会理解代码。
  • 我了解 SOAP 和 WSDL 的基础知识。我希望能得到一些简单的例子或指针,说明使用哪些模块以及如何使用它们。
【解决方案2】:

我找到了两个可以帮助你制作soap服务器的模块,但我从不使用它

https://metacpan.org/pod/XML::Compile::SOAP::Daemon

https://metacpan.org/pod/SOAP::WSDL::Server

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-05-24
    • 1970-01-01
    • 1970-01-01
    • 2023-03-26
    • 2018-05-20
    相关资源
    最近更新 更多