2

我完全被阻止了,我需要你的帮助。

我使用 Python 和 Soappy 库开发了一个 SOAP 服务器。如果我使用另一个 Python 应用程序作为客户端,它工作得很好,但是我尝试与 Perls SOAP::Lite 应用程序连接的那些它不再工作了。

这是我从 Perl 脚本中得到的。

500 Internal Server Error at /usr/share/perl5/SOAP/Lite.pm line 3427

这是来自 Perl 试图连接的服务器的错误消息。

*** Internal exception 'NoneType' object has no attribute '_name' ******
Traceback (most recent call last):
  File "/usr/lib/pymodules/python2.7/SOAPpy/Server.py", line 232, in do_POST
    method = r._name
AttributeError: 'NoneType' object has no attribute '_name'

当然,我查了资料,也找不到任何结论。

我对 Perl 完全陌生,但是连接到我开发的另一个 Web 服务的同一个应用程序(在 C++ 中使用 gSOAP)工作正常。

我在google上做了一些研究,我发现了这个:

http://mail-archives.apache.org/mod_mbox/axis-java-user/200504.mbox/%3CJPEHKJKAFLKINKCFJHMBMELACNAA.i.venuti@caribel.pisa.it%3E

然而,我没有对不同种类的 WSDL 进行足够简单的解释,并没有对应用程序产生影响。

如果需要,我会提供来源,但是我认为这不一定是因为我使用了基本示例。看起来很有用的是我由 Python 定义的命名空间以及我如何在 Perl 中访问它。

Python服务器:

server.registerObject(Memorizer(), "urn://memorizer")

这是 Perl 的定义:

use SOAP::Lite +autodispatch =>
        uri => 'urn://memorizer',
        proxy => 'http://localhost:8081';

所有关于变量、地址等的选择都是完全任意但一致的。我希望有人知道如何解决它。谢谢。

4

0 回答 0