Мы используем $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, поэтому есть обработчик где-то - который я хочу немного настроить.