I'm trying to migrate a mod_perl application from Linux, where it works beautifully, to a Windows 2008 virtual machine, where it ain't doing so hot. Been trying to track down the problem for many a day. I'm stuck.

The application in question is a front-end for a WSDL service. I'm using mod_perl to serve the site/UI and XML->Compile to manage data. Again, all works perfectly on Linux/Apache2/mod_perl -- and snippets of the code in question work fine on Windows when pulled out of Apache and run as standalone Perl scripts. But when running as a mod_perl application on Windows (Win2008 VM/Apache2.2/modperl w/Perl 5.12 versions of either Strawberry or ActivePerl), XML parsing breaks with the following error:

'error' => 'Can\'t call method "parse_string" on unblessed reference at C:/Perl/site/lib/XML/Compile/Transport.pm line 77.

I've tried tracing the calls. The first part of a request looks identical across working and breaking versions -- the XML is retrieved and looks good, but in the Windows/Apache2 environment, the parser object isn't getting set up -- or maybe it's getting set up and then breaking.

A critical point here -- in XML::Compile::Transport on Windows, $parser is getting set to '\undef' -- it should be getting set like this:

$VAR1 = bless( {
        '_State_' =>  0,
        'XML_LIBXML_PARSER_OPTIONS' =>  528390
},  'XML::LibXML' );


Not much to go on, I realize, but for all my troubleshooting, I just don't know where the problem is. Best guess here is that since the code works in the Linux/Apache/mod_perl setting -- and relevant pieces of the code (the pieces that are breaking as mod_perl) also work in Windows when executed as standalone scripts -- that there must be some critical difference in the Windows/Apache/mod_perl environment that's breaking the Perl structures.

Has anyone run into similar problems? Any suggestions would be much appreciated.

Thanks,
Richard

Reply via email to