0

我们在$server = SOAP::Transport::HTTP::Apache->new; $server->dispatch_with(...)这里使用 over 作为基于 JS 的应用程序的后端。如果底层模块死掉,它会发回一个很好的错误消息,由 JS 代码显示。

问题是,我想要更详细的消息(例如 Carp::longmess),以及 STDERR 上的硬拷贝。

如何以最少的代码修改将自定义异常处理程序注入 SOAP::Transport::HTTP::Apache?

(这是一个我们负担不起重写的大而老的项目,尽管老实说它值得重写)。

更新:这是一个示例错误消息:

<soap:Body><soap:Fault>
<faultcode>soap:Server</faultcode><faultstring>Column 
'allocation' cannot be null at 
/usr/local/lib/perl5/site_perl/5.8.8/Tangram/Storage.pm
 line 686. </faultstring></soap:Fault></soap:Body>

我收到了 Tangram 错误,但这不太可能是 Tangram 中的错误,无论如何我需要完整的堆栈跟踪。OTOH,die 消息进入了 SOAP 消息,这不是正常的 die 动作,所以在某处有一个处理程序——我想对其进行一些自定义。

4

1 回答 1

0

错误处理程序位于SOAP::Transport::HTTP::Server::_output_soap_fault. <faultcode>在 perl INC 路径中尝试 grep 。

于 2011-03-17T13:50:37.827 回答