SOAP :: Lite在调试模式下始终出现故障

时间:2014-11-25 01:01:07

标签: perl soap

我已经暂时解决了这个问题。每次我在调试模式下使用SOAP::Lite(无论是正常调试还是类似NYTProf之类的事情),它都会调用on_fault处理程序。

我已经介入,这是由于这个错误:

Attempt to reload SOAP/Lite/Deserializer/XMLSchema2001.pm aborted.
Compilation failed in require at (eval 1343)[C:\\Perl\\site\\lib/SOAP/Lite.pm:2328] line 3.
...propagated at C:\\Perl\\site\\lib/SOAP/Lite.pm line 2328.

我想知道这是否正常以及最佳解决方法是什么?感谢。

编辑:忘记在Windows上提及这是Activestate Perl 5.10.1,目前无法升级。

1 个答案:

答案 0 :(得分:1)

发现它!使用-d和-w标志运行perl似乎会在调试器中引发警告范围的问题。它抱怨在这种模式下重新定义的潜艇,但如果我们只提供一个或两个-d / -w标志,则忽略它们。

问题出在SOAP::Lite::Deserializer::XMLSchema2001BEGIN块映射as_*方法。 dateTime在列表中两次,因此我们收到有关as_dateTime被重新定义的错误。

这会破坏初始模块编译,并在第二次尝试时产生上述错误。