axis-c-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Eric R George <Eric.R.Geo...@aero.org>
Subject Re: SSL support using other packages other than openSSL ?
Date Wed, 13 Aug 2008 15:27:32 GMT
Ok, I sent this to the list the other day, but it hasn't shown up yet?? 
Here's another try - sorry if people get duplicates.

I'm getting pretty frustrated with the Axis C++ binary installation.  I'm 
going to go step-by-step through the installation instructions provided. 
Sorry for the long email - think of it as a complete newbie trying to 
learn your system.

For what it's worth, I'm working on a Fedora Core 5 system

I downloaded axis-c-linux-current-bin.tar several days ago and unpacked it 
to reveal axis-c-1.6b-Linux-trace-bin

Then I went to axis-c-1.6b-Linux-trace-bin/docs/install-guide.html and 
found the instructions for server install & config.

Step 1: Download Axis C++

        Done - unpacked to 
/home/myname/WebServices/axis-c-1.6b-Linux-trace-bin

Step 2: Install Apache Web Server

        Done - I have httpd-2.2.2-1.3 installed via RPM and modules are 
supported.

3. Install Xerces C++ (2.2.0)

        Done - I then downloaded & installed xerces-c-src_2_8_0

        This yielded the following libraries:

        /usr/local/lib/libxerces-c.so -> libxerces-c.so.28.0
        /usr/local/lib/libxerces-c.so.28 -> libxerces-c.so.28.0
        /usr/local/lib/libxerces-c.so.28.0
        /usr/local/lib/libxerces-depdom.so -> libxerces-depdom.so.28.0
        /usr/local/lib/libxerces-depdom.so.28 -> libxerces-depdom.so.28.0
        /usr/local/lib/libxerces-depdom.so.28.0

4. Configure environment variables

        Done:
        export 
AXISCPP_DEPLOY="/home/myname/WebService/axis-c-1.6b-Linux-trace-bin/"

        export LD_LIBRARY_PATH="/usr/local/lib:$AXISCPP_DEPLOY/lib"

        (There appears to be a missing linefeed in the 3rd line of this 
section)

5. Configure Engine Wide Settings in Configuration File

        Ok, here is some confusion.  I read the following instruction:

                "A sample configuration file is installed in 
$AXISCPP_DEPLOY/etc"

        I understood earlier that AXISCPP_DEPLOY was to point to the 
directory I unpacked the tarball to.  In this case 
/home/myname/WebServices/axis-c-1.6b-Linux-trace-bin  But there is no etc 
directory here??  I did find an etc directory under 
/home/myname/WebServices/axis-c-1.6b-Linux-trace-bin/deploy.

        So, the first question:

**************************************************************
What should AXISCPP_DEPLOY point to??
**************************************************************

        Should it point to the unpacked directory, or the 'deploy' 
directory with it?  Or did I miss something above?

        I'll take a guess and re-assign the AXISCPP_DEPLOY environment 
variable to the deploy directory within the top-level directory:

        export 
AXISCPP_DEPLOY="/home/myname/WebService/axis-c-1.6b-Linux-trace-bin/deploy/"
        export LD_LIBRARY_PATH="/usr/local/lib:$AXISCPP_DEPLOY/lib"

        So now I look in $AXISSCPP_DEPLOY/etc ... there is no axiscpp.conf 
file present, as stated in your instructions?? 

        There is a axiscpp.conf_linux file, with a structure similar to 
what is described in the docs, so I copy it to axiscpp.conf  Not to much 
of a leap, but it would be nice if the docs pointed this out.

        cp $AXISCPP_DEPLOY/etc/axiscpp.conf_linux 
$AXISCPP_DEPLOY/etc/axiscpp.conf

        I go in and take a look ... and all of the paths reference 
"/usr/local/axiscpp_deploy/".  There is nothing in the server install 
instructions which says anything about copying stuff to 
/usr/local/axiscpp_deploy.  Why not use the $AXISCPP_DEPLOY environment 
variable?

        So I change the paths to point to 
/home/myname/WebService/axis-c-1.6b-Linux-trace-bin/deploy/

        Now my config file looks like this:

LogPath:/home/myname/WebService/axis-c-1.6b-Linux-trace-bin/deploy/log/AxisLog
WSDDFilePath:/home/myname/WebService/axis-c-1.6b-Linux-trace-bin/deploy/etc/server.wsdd
ClientLogPath:/home/myname/WebService/axis-c-1.6b-Linux-trace-bin/deploy/log/AxisClientLog
XMLParser:/home/myname/WebService/axis-c-1.6b-Linux-trace-bin/deploy/lib/libaxis_xmlparser.so
Transport_http:/home/myname/WebService/axis-c-1.6b-Linux-trace-bin/deploy/lib/libaxis2_transport.so

        Just for grins, I take a look for this stuff:

LogPath:/home/myname/WebService/axis-c-1.6b-Linux-trace-bin/deploy/log/AxisLog
        No such file or directory - ok, I'll assume it creates this file 
on the fly

WSDDFilePath:/home/myname/WebService/axis-c-1.6b-Linux-trace-bin/deploy/etc/server.wsdd
        No such file or directory - looking I see the following:

        server.wsdd_linux
        server.wsdd_linux_handler

        I'm guessing this is similar to the axiscpp.conf_linux stuff, but 
which to rename???

***************************
What is server.wsdd?  Candidates would appear to be:
        server.wsdd_linux
        server.wsdd_linux_handler
***************************

        I flip a coin and pick server.wsdd_linux
        cp deploy/etc/server.wsdd_linux deploy/etc/server.wsdd

ClientLogPath:/home/myname/WebService/axis-c-1.6b-Linux-trace-bin/deploy/log/AxisClientLog
        Again - so such file.  Will assume it will be created on the fly.

XMLParser:/home/myname/WebService/axis-c-1.6b-Linux-trace-bin/deploy/lib/libaxis_xercesc.so
        No such file or directory.

        In fact, a search of the directory tree finds nothing by this 
name.  Nothing in the Xerces directory matches either.  In fact, nothing 
on my filesystem matches, and this is the first time libaxis_xercesc.so is 
mentioned at all in this document. What the heck is it??? 

        I then notice that the client install section it refers to 
libaxis_xerces.so - which is in the axis install directory, but not in 
deploy/lib  A typo maybe?
        There is also a file called libxerces-c.so to add to the 
confusion??

****************************************
What is libaxis_xercesc.so?
Should I copy axis-c-1.6b-Linux-trace-bin/lib/axis/libaxis_xerces.so to 
deploy/lib - or point the config file to it as it stands?
****************************************

        So I make a WAG and copy everything in 
axis-c-1.6b-Linux-trace-bin/lib to deploy/lib:

        cp -r axis-c-1.6b-Linux-trace-bin/lib/* 
axis-c-1.6b-Linux-trace-bin/deploy/lib

        This seems to indicate that $AXISCPP_DEPLOY should point to the 
base directory (/home/myname/axis-c-1.6b-Linux-trace-bin) rather then the 
deploy directory (axis-c-1.6b-Linux-trace-bin/deploy) - but this breaks 
the config files located in axis-c-1.6b-Linux-trace-bin/deploy/etc ???

        And finally, why do we install Xerces if the library is already 
provided?

        Another note - the empty README.txt files scattered everywhere are 
a nice touch on the whole confusion thing.

Transport_http:/home/myname/WebService/axis-c-1.6b-Linux-trace-bin/deploy/lib/libaxis2_transport.so
        Again - there is no libaxis2_transport.so anywhere???

        There is a "libhttp_transport.so" - so I point it to that.

*****************************************
What is libaxis2_transport.so???
*****************************************

        There is a line in the documentation which is not in the sample 
config file:

 Channel_HTTP:/usr/local/axiscpp_deploy/lib/libaxis3_transport_channel.so

        Of course, there is no "libaxis3_transport_channel.so" on the 
filesystem.

        There is a libhttp_channel.so - no "transport" in the name, but 
it's the closest I have.

******************************************
Is Channel_HTTP needed in the config file?  Docs & sample are 
inconsistent.
What is libaxis3_transport_channel.so?
******************************************

Now my config file looks like this:

LogPath:/home/myname/WebService/axis-c-1.6b-Linux-trace-bin/deploy/log/AxisLog
WSDDFilePath:/home/myname/WebService/axis-c-1.6b-Linux-trace-bin/deploy/etc/server.wsdd
ClientLogPath:/home/myname/WebService/axis-c-1.6b-Linux-trace-bin/deploy/log/AxisClientLog
XMLParser:/home/myname/WebService/axis-c-1.6b-Linux-trace-bin/deploy/lib/axis/libaxis_xerces.so
Transport_http:/home/myname/WebService/axis-c-1.6b-Linux-trace-bin/deploy/lib/axis/libhttp_transport.so
Channel_HTTP:/home/myname/WebService/axis-c-1.6b-Linux-trace-bin/deploy/lib/axis/libhttp_channel.so

On to the next step...

6. Setting Axis files to be executable
        chmod -R 777 $AXISCPP_DEPLOY

        Ok, I'll do it - but it makes me nervous setting stuff related to 
server or CGI stuff to 777  I'll play with this later if I get things 
working.

7. Configure Apache Module
        Ok, I cut and pasted the stuff from the documentation directly 
into my httpd.conf file:

        LoadModule axis_module modules/libaxiscpp_mod2.so 
        <Location /axis> 
         SetHandler axis 
         </Location> 

        The copy the module to the apache module directory:

        cp ./lib/axis/libaxiscpp_mod2.so /usr/lib/httpd/modules/

        And then restart apache - to the following error message:

"Starting httpd: httpd: Syntax error on line 992 of 
/etc/httpd/conf/httpd.conf: Cannot load 
/etc/httpd/modules/libaxiscpp_mod2.so into server: libaxis_server.so: 
cannot open shared object file: No such file or directory"

        There is a libaxis_server.so - but the apache user doesn't know 
about it, because the new LD_LIBRARY_PATH isn't set for that user.

        So I add the following lines to /etc/ld.so.conf:

/home/myname/WebService/axis-c-1.6b-Linux-trace-bin/deploy/lib
/home/myname/WebService/axis-c-1.6b-Linux-trace-bin/deploy/lib/axis

        and run ldconfig.

        I try to start apache again, and now get the following:

"Starting httpd: httpd: Syntax error on line 992 of 
/etc/httpd/conf/httpd.conf: API module structure `axis_module' in file 
/etc/httpd/modules/libaxiscpp_mod2.so is garbled - perhaps this is not an 
Apache module DSO?"

I have no idea what this means - I'm stuck.  I made a brief attempt at the 
axis c++ source install - and quickly got bogged down there as well.

So ... any suggestions?
Can I expect the rest of the learning curve for this tool to be as 
convoluted and poorly documented.  If so, I may cut my losses and find 
another way. 

I'd really like this to work though, because everything I want to do as a 
web service already exists as C/C++ code.  Wrapping it to an intermediate 
language will be a PITA - the most likely candidate would seem to be JAVA, 
which I don't know.  So re-writing it to that language isn't feasible 
either.  So I hope I can make this work.

Thanks
Eric


Mime
View raw message