1. Compile Axis2/C on a machine with identical settings to that of the server machine. 2. Install that on server machine, following the guidelines given in binary install

That should work.

Samisa...

Alex Bolgarov wrote:
Well, our server machine is not supposed to have development tools at
all. So I can't compile the Axis2/C on it.

Then, how it is supposed to work if I use the Axis2C binary distribution?

And it should have nothing to do with environment variables settings
(other then possible LD_LIBRARY_PATH) because Apache can't load the
module at all, because the ldopen() can't find the shared libraries
that this module refers to, and I can't load those shared libraries
manually using LoadFile directive because of the circular reference
problem as I described. So at the moment of failure no Axis2/C code
has executed yet that could have a chance to fix something (like, to
find and load libraries from the location pointed by the AXIS2C_HOME
or by any parameter in the Apache config file. Or am I wrong here?

What I don't understand is why (and how) it works if I run the Apache
server on the machine where I compile the Axis2C. Does the linker,
when it builds the libmod_axis2.so, embeds into this library the
pathes to the other Axis2/C libraries so, when I copy the mod_axis2.so
into the Apache modules directory on the same machine, it finds them
using those embedded pathes?


Thank you,

    alex.

On Wed, Jul 16, 2008 at 3:28 PM, lahiru gunathilake <[EMAIL PROTECTED]> wrote:
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 <[EMAIL PROTECTED]> 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: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]


---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]


No virus found in this incoming message.
Checked by AVG - http://www.avg.com Version: 8.0.138 / Virus Database: 270.5.0/1555 - Release Date: 7/16/2008 6:43 AM





--
Samisa Abeysinghe Director, Engineering; WSO2 Inc.

http://www.wso2.com/ - "The Open Source SOA Company"


---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to