On Thu, Jul 17, 2008 at 2:25 AM, Alex Bolgarov <[EMAIL PROTECTED]> 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?

1. Unzip the binary to a location,
2. Copy the mod_axis2.so to the Apache module directory.
3. Set the LoadModule and the Axis2RepoPath in httpd.conf
Restart the Apache server.

-Rajika

>
>
> 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]
>
>


-- 
comp.lang.c - http://groups.google.com/group/comp.lang.c/topics

Reply via email to