如何在Perl中创建一个SOAP服务器?

4
我正在与第三方供应商合作,不幸的是他们要求我们设置一个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服务器。 - kbosak
注意:即使它能工作,SOAP::Parser也是一个糟糕的选择。这是一个旧模块,我不得不从源代码安装它,因为它有mod_perl作为依赖项。它还给我带来了SOAP::Lite的问题。 - kbosak
2个回答

3
如果你对SOAP的理解有限,在开始实现之前,先阅读关于SOAP的相关内容。有很多SOAP教程可供参考。大部分文档可能对你来说看起来很神秘,因为你还不了解SOAP。
这并不是一个棘手的过程。当涉及到以下几个重要步骤时,它与任何其他Web编程并没有太大的区别:
  • 你会收到一个SOAP请求,其中包含一些XML。
  • 你需要解析XML以确定下一步操作。
  • 你需要组装一些XML作为响应并发送出去。
  • 最后返回响应。
XML::Compile将为您处理大部分细节。
在开始编写自己的服务器之前,您可以考虑为现有的SOAP服务器编写客户端,以便给自己一些练习机会。

我实际上已经看过XML::Compile::SOAP,但仍然没有弄清楚如何将所有内容绑定在一起。此外,我想使用给我们的WSDL文件。 - kbosak
3
不要直接从代码开始,先学习SOAP。在学习SOAP之前,您不会理解代码。 - brian d foy
我了解SOAP和WSDL的基础知识。我希望能够得到一些简单的示例或指针,了解应该使用哪些模块以及如何使用它们。 - kbosak

1

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接