I am developing some Web services using the SOAP::Transport::HTTP::Apache PERL module, which at the end of the day uses 'expat' (libexpat.so) to parse the XML of the SOAP messages. Sometimes, I need to parse quite large messages (5-10 MB size) and the expat library is very inefficient in memory management resulting in 'out of memory' errors, so I decided to use Xerces-C++ and the DOM Parser of the XML::Xerces PERL module.
So I overide the default Parser of the SOAP::Serializer of the SOAP server (an instance of SOAP::Transport::HTTP::Apache) and try to use the XML::Xerces::XercesDOMParser instead.
Unfortunately the decoding fails and the SOAP server returns the error string
<faultstring>Application failed during request deserialization: Can't locate auto/XML/Xerces/XercesDOMParser/decode.al in @INC ... </faultstring>
Now, I have compiled Xerces-C++ as a shared library object (libxerces-c.so); have set the XERCESCROOT, XERCES_INCLUDE, XERCES_LIB environmental variables correctly; used on the Unix prompt successfully the 'DOM2hash.pl' script to parse a 8MB XML document (the XML part of a SOAP request actually) in about 3 seconds - the XERCES DOM parser is very efficient and it deserves lots of congratulations.
All seem well in the environment.
Under my UNIX user's PERL lib, there is even the Xerces.so file
lib/perl5/5.6.1/sun4-solaris/auto/XML/Xerces/Xerces.so
so why during deserialization would the Xerces.pm module look for the static file ?
auto/XML/Xerces/XercesDOMParser/decode.al
Has anybody any advice/clues about what I am missing ? Any help will be greatly appreciated. Cheers,
-- Nikos Loutas
ps:The clever prophet makes sure of the event first
--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
