我一直在研究如何将基于Perl的SOAP服务器添加到我们的系统中。每当我看到Perl中的SOAP工具时,我都会感到失望的是,与VS.net世界中的人们相比,似乎需要更多的开发人员开销。 (而且我一直在找很长时间)
从这里回顾其他问题,看来XML::Compile::SOAP似乎是最近流行的工具。我已经找到了一种方法来通过它将我的代码作为服务提供,但我还必须手动按下我用Pod::WSDL开始的.WSDL文件。
我在CPAN或其他地方找不到更直接的方法吗? Pod::WSDL默认情况下吐出rpc / encoded,我理解这不再是“最佳”方式了。文档说文档/文字尚不支持,阅读源代码可以看到代码的部分文档/文字,但它不能直接与XML::Compile::SOAP一起使用。理想情况下,我在POD或perl5属性的代码中添加了一些注释,并按下一个按钮,然后获取可以提供给XML :: Compile包的WSDL。
提前致谢。
答案 0 :(得分:1)
据我所知,没有更好的方法。至少对于简单的服务。
我发现如果我使用RPC思维模式编写Web服务,那么SOAP :: Lite非常容易使用。
确实,这使用了不受欢迎的SOAP / Encoded样式的SOAP。但是,如果你添加一点POD标记,你可以生成WSDL(后按摩).Net客户端 可以愉快地消费(至少,我测试了Mono和用MS C#测试的第三方)
正如你所说,Pod :: WSDL的输出确实需要按摩,我记得我必须在构建过程中修复一个命名空间。
缺点是许多与SOAP相关的高级XML处理似乎缺失或者没有很好地集成,而且SOAP :: Lite和Pod :: WSDL看起来有点奄奄一息。
但是对于简单的远程方法调用,传递Perl对象,我发现它的数量级比我曾经用过的Java框架简单得多。你的里程可能会变化。