axis-c-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "lahiru gunathilake" <glah...@gmail.com>
Subject Re: Loading mod_axis2.so module into Apache
Date Wed, 16 Jul 2008 19:28:49 GMT
Hi Alex,

I think you have to set AXIS2C_HOME environment variable on your server
machine. And why are you copying libraries from one machine to another why
don't you compile Axis2C on you server machine.AFAIK if your first machine
and the second machine are different,different in the sense first machine is
dual core and the server machine is core 2 duo or something else you have to
recompile Axis2C on your server machine and create libmod_axis2.so otherwise
previously compiled library won't work on the server machine.

Regards
Lahiru

On Thu, Jul 17, 2008 at 12:03 AM, Alex Bolgarov <alex@bolgarov.org> wrote:

> Hi,
>
> How do you load a mod_axis2.so module into the Apache when you copy
> the Axis2/C libraries to some directory - for example, when you are
> using the binary Axis2/C distribution, or just build Axis2/C from
> source on one machine (and installed itto some directory) and then
> copy Axis2/C module and libraries to some directory on some othar
> machine with Apache server?
>
> Well, here is a longer description of the problem:
>
> Say I'm using a source distribution. I download the .tar.gz source
> tarball, untar, configure it with some install directory (--prefix)
> and build/install it, now I have this install directory with the build
> by me Axis2/C.
>
> I have Apache server running in this machine, so I copy mod_axis2.so
> into the Apache installation, I update the Apache config to load the
> module, I define the Axis2/C repository, I develop a web service and
> run tests against it. All is fine up to this point.
>
> Now I want to use the Axis2/C with the Apache server that is running
> on another machine.
>
> I copy everything from the install directory from the build machine
> into some directory on this other machine with Apache (let's call this
> directory "/home/alex/axis2c-dist").
>
> I rename libmod_axis2.so.0.4.0 to mod_axis2.so and copy it into the
> Apache's modules directory.
>
> Now I change the Apache config file so that it contains the line
>
>    LoadModule axis2_module modules/mod_axis2.so
>
> I try to start Apache:
>
>    $ apachectl start
>
> and see following error:
>
> Cannot load /home/alex/httpd/modules/mod_axis2.so into server:
> libaxis2_engine.so.0: cannot open shared object file: No such file or
> directory
>
> Now, I happen to know about the LoadFile Apache directive :)
>
> I add the LoadFile directive for the libaxis2_engine.so so that Apache
> loads it from the /home/alex/axis2c-dist directory, now the Apache
> config looks like this:
>
>    LoadFile /home/alex/axis2c-dist/lib/libaxis2_engine.so.0.4.0
>    LoadModule axis2_module modules/mod_axis2.so
>
> I try to start Apache again:
>
>    $ apachectl start
>
> and now see:
>
> Cannot load /home/alex/axis2c-dist/lib/libaxis2_engine.so.0.4.0 into
> server: libneethi.so.0: cannot open shared object file: No such file
> or directory
>
> OK, I add LoadFile directives for the libneethi.so, and so on, when I
> finally arrive to the following config:
>
>    LoadFile /home/alex/axis2c-dist/lib/libaxutil.so.0.4.0
>    LoadFile /home/alex/axis2c-dist/lib/libguththila.so.0.4.0
>    LoadFile /home/alex/axis2c-dist/lib/libaxis2_parser.so.0.4.0
>    LoadFile /home/alex/axis2c-dist/lib/libaxis2_axiom.so.0.4.0
>    LoadFile /home/alex/axis2c-dist/lib/libneethi.so.0.4.0
>    LoadFile /home/alex/axis2c-dist/lib/libaxis2_http_common.so.0.4.0
>    LoadFile /home/alex/axis2c-dist/lib/libaxis2_engine.so.0.4.0
>
>    LoadModule axis2_module modules/mod_axis2.so
>
> But now, after I try to start Apache, I see new error:
>
> Cannot load /home/alex/axis2c-dist/lib/libaxis2_http_common.so.0.4.0
> into server: /home/alex/axis2c-dist/lib/libaxis2_http_common.so.0.4.0:
> undefined symbol: axis2_handler_invoke
>
> Which means that the libaxis2_engine.so depends on the
> libaxis2_http_common.so, and requires it to be loaded by Apache first,
> but the libaxis2_http_common.so contains a reference to undefined
> symbol "axis2_handler_invoke", that is defined by the
> libaxis2_engine.so. (Yes, I used 'nm libaxis2_engine.so | grep
> axis2_handler_invoke" to check that this symbol is indeed defined in
> this library.)
>
> Circular dependency?
>
> How do I break it?
>
> (note that the same thing happens if I download the binary
> distribution, untar it into some directory and copy the mod_axis2 into
> the Apache moddules directory. Up to the same point I can use LoadFile
> to load Axis2/C libraries, but then again I see this circular
> dependency)
>
>
> Thank you,
>
>    alex.
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: axis-c-user-unsubscribe@ws.apache.org
> For additional commands, e-mail: axis-c-user-help@ws.apache.org
>
>

Mime
View raw message