Title: Unable to process ?wsdls - found out why

I had been unable to get my axiscpp 1.5 installation to process ?wsdl URL's.  Apache would always segfault, even though the …/axis/ URL produces a web page with links to all the wsdls.  As related below, I was able to work around the problem by hard-coding the path to my AXISCPP_DEPLOY tree.  But the code in engine/Axis.cpp doesn't work.

Anyway, some other things I noticed once I got WSDL's to my browser:
1) The code that puts out the service list page seems to work from the server.wsdd file, not the wsdl's directory.  Since the wsdl display code uses a simple fopen to open the wsdl file, and that's case-sensitive, some services (e.g. Calculator) where the service name and wsdl don't match case don't work.

2) My browser (Firefox) displays the wsdl as what looks like a form with a bunch of input fields, even though 'View Page Source' shows it as nicely-formatted xml.  Firefox displays my trading partner's asmx?wsml file as formatted xml directly, and IE displays the axis-generated wsdl directly.  Is this a mime-type issue?  I know IE tends to guess file types when the mime type is wrong more than mozilla-based browsers do.

================

Here's where the problem code is.  Haven't been able to code a real fix yet (and have only been able to debug by putting out some HTML and returning before the code that segfaults - there must be a better way?):

The segfault occurs in this line in the src/engine/Axis.cpp file:
                    sServiceName = g_pConfig->getAxisConfProperty(AXCONF_AXISHOME);

If I replace that line with:
                    sServiceName = "/usr/local/axiscpp_deploy/";
It works.

since the AXCONF_AXISHOME property doesn't get set up until readConfFile() is done, I also tried coding this:
         if (! g_pConfig->getAxisConfProperty(AXCONF_AXISHOME)) {
                        g_pConfig->readConfFile();
            }
            sServiceName = g_pConfig->getAxisConfProperty(AXCONF_AXISHOME);

It still segfaults on the get AxisConfProperty() call, though the readConfFile call returns okay.

Finally, I tried this instead of hard-coding the 'deploy' directory;
                    sServiceName = getenv ("AXISCPP_DEPLOY");
Also segfaults.

What's up?

R o b   Y a m p o l s k y
Harris Corporation
[EMAIL PROTECTED]
(212) 303 - 4250

Reply via email to