我完全被阻止了,我需要你的帮助。
我使用 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上做了一些研究,我发现了这个:
然而,我没有对不同种类的 WSDL 进行足够简单的解释,并没有对应用程序产生影响。
如果需要,我会提供来源,但是我认为这不一定是因为我使用了基本示例。看起来很有用的是我由 Python 定义的命名空间以及我如何在 Perl 中访问它。
Python服务器:
server.registerObject(Memorizer(), "urn://memorizer")
这是 Perl 的定义:
use SOAP::Lite +autodispatch =>
uri => 'urn://memorizer',
proxy => 'http://localhost:8081';
所有关于变量、地址等的选择都是完全任意但一致的。我希望有人知道如何解决它。谢谢。