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]