将自定义die()处理程序注入mod_perl SOAP处理程序

时间:2011-03-17 10:00:32

标签: perl mod-perl

我们在这里使用$server = SOAP::Transport::HTTP::Apache->new; $server->dispatch_with(...)作为基于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动作,所以有一个处理器某处 - 我想自定义一点。

1 个答案:

答案 0 :(得分:0)

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

相关问题