The release comes in two forms, source and binary. To get both the binary and source distributions working, you need Libxml2 from http://xmlsoft.org/downloads.html NOTE: Most Linux systems have Libxml2 installed by default. On Windows you need to download and install Libxml2. Table of Contents ================= 1. Getting Axis2/C working with the binary release on Linux 2. Getting Axis2/C working with the source release on Linux 3. Getting Axis2/C working with the binary release on Windows (win32) 3.1 Requirements 3.2 Binaries in the release 3.3 Running the binaries 4. Getting Axis2/C working with the source release on Windows (win32) 4.1 Requirements 4.2 Editing Configure.in file 4.3 Compiling the source 4.4 Running the binaries 5. Installing Apache2 Web Server integration module (mod_axis2) 1. Getting Axis2/C working with the binary release on Linux. ========================================================== 1. Extract the binary tar package to a directory. 2. Set AXIS2C_HOME environment variable pointing to the location where you have extracted Axis2/C AXIS2C_HOME='/your_path_to_axis2c' export AXIS2C_HOME NOTE: You will need to set AXIS2C_HOME only if you need to run Axis2/C samples or tests. The reason is that the samples and test codes use AXIS2C_HOME to get the path to Axis2/C. To write your own services or clients this is not a requirement. 3. Run the simple axis server: cd /your_path_to_axis2c/bin ./axis2_http_server This will start the simple axis server on port 9090. To see the possible command line options run ./axis2_http_server -h NOTE: If you run into shared lib problems, set the LD_LIBRARY_PATH export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/your_path_to_axis2c/lib 4. Run the sample clients in a new shell cd /your_path_to_axis2c/bin/samples ./echo This will invoke the echo service. ./math This will invoke the math service. To see the possible command line options for sample clients run them with '-h' option NOTE: If you run into shared lib problems, set the LD_LIBRARY_PATH export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/your_path_to_axis2c/lib 2. Getting Axis2/C working with the source release on Linux. ========================================================== 1. Extract the source tar package to a directory 2. Set AXIS2C_HOME environment variable pointing to the location where you want to install Axis2/C. AXIS2C_HOME='/your_desired_path_to_axis2c_installation' export AXIS2C_HOME NOTE: You will need to set AXIS2C_HOME only if you need to run Axis2/C samples or tests. The reason is that the samples and test codes use AXIS2C_HOME to get the path to Axis2/C. To write your own services or clients this is not a requirement. 3. Go to the directory where you extracted the source cd /your_path_to_axis2c_source 4. Build the source This can be done by running the following command sequence in the directory where you have extracted the source. ./configure --prefix=${AXIS2C_HOME} make sudo make install Please run './configure --help' in respective sub folders for more information on these configure options. NOTE: If you don't provide the --prefix configure option, it will by default be installed into "/usr/local/axis2c" directory. You could run make check to test if everything is working fine. However, note that the test/core/clientapi/test_clientapi program would fail unless AXIS2C_HOME points to the installed location. (It's looking for Axis2/C repository) This means you really should run "make && make install", then set AXIS2C_HOME=/path/to/install, and then "make check". That's a little different than the usual "make && make check && make install" process. You may need to try Axis2/C with guththila xml parser. You can do it by giving "--enable-guththila=yes" as a configure option. ./configure --enable-guththila=yes [other configuration options] make sudo make install If you need to get the samples working, you also need to build the samples. To build the samples: export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/axis2c/lib/ cd samples ./configure --prefix=${AXIS2C_HOME} --with-axis2=${AXIS2C_HOME}/include/axis2-1.3.0 make sudo make install Please run "./configure --help" in samples folder for more information on configure options. NOTE: If you don't provide a --prefix configure option, samples will by default be installed into "/usr/local/axis2c/samples" directory. 5. Go to the folder where you installed Axis2/C. 6. Start simple axis server cd ${AXIS2C_HOME}/bin ./axis2_http_server This will start the simple axis server on port 9090. To see the possible command line options run: ./axis2_http_server -h NOTE: You may need to be login as superuser to run the simple axis server. 8. Run the sample clients in a new shell cd ${AXIS2C_HOME}/bin/samples ./echo This will invoke the echo service. ./math This will invoke the math service. To see the possible command line options for sample clients, run them with '-h' option. 3. Getting Axis2/C working with the binary release on Windows. ============================================================ 3.1 Requirements ---------------- * The binaries shipped with this version are compiled with Microsoft Visual Studio compiler (cl) Note: You can download Microsoft VS Express2005 Edition from Microsoft website and install it to run these binaries * You also need the following dlls - libxml2.dll [http://www.zlatkovic.com/pub/libxml - version >= libxml2-2.6.20.win32] - iconv.dll [http://www.zlatkovic.com/pub/libxml - version >= iconv-1.9.1.win32] - zlib1.dll [http://www.zlatkovic.com/pub/libxml - version >= zlib-1.2.3.win32] 3.2 Binaries in the release --------------------------- Extract the binary distribution to a folder of your choice. (example: C:\axis2c) The c:\axis2c folder structure is as follows. axis2c | +- bin - server and other executables | | | +- samples - samples go here | | | +... | | +- docs - documentation | +- include - all include files of axis2 | +- lib - library modules | +- logs - system and client logs are written to this folder | +- modules - deployed modules | +- samples - source files of the samples in bin | +- services - deployed services Copy the downloaded libxml2.dll, iconv.dll and zlib1.dll to C:\axis2c\lib (Or you can have these dll's some other place and add the location to PATH environment variable) 3.3 Running the binaries ------------------------ You need to set a couple of environment variables before you can run the server and samples. Set the variable AXIS2C_HOME to the deploy folder (C:\axis2c) Add the path to lib directory to the PATH variable (%AXIS2C_HOME%\lib) Now everything is set to run the server! C:\axis2c\bin>axis2_http_server.exe You should see the message: Started Simple Axis2 HTTP Server... By default the log is created under %AXIS2C_HOME%\logs folder with the name axis2.log. NOTE: You may provide command line options to change the default behaviour. Type "axis2_http_server.exe -h" to learn about the usage) Now you can run any sample client deployed under %AXIS2C_HOME%\bin\samples\ Example: C:\axis2c\bin\samples>echo.exe 4. Getting Axis2/C working with the source release on Windows. ============================================================ 4.1 Requirements ---------------- * The makefile shipped with this version needs Microsoft Visual Studio compiler (cl) and nmake build tool NOTE: You can download Microsoft VS Express2005 Edition and Platform SDK from Microsoft website. You will need to add the path to Platform SDK Include and Lib folders to the makefile. * You also need - libxml2 [http://www.zlatkovic.com/pub/libxml - download the version >= libxml2-2.6.20.win32] - iconv [http://www.zlatkovic.com/pub/libxml - download the version >= iconv-1.9.1.win32] - zlib [http://www.zlatkovic.com/pub/libxml - download the version >= zlib-1.2.3.win32] 4.2 Editing configure.in file ----------------------------- The default places for libxml2 and iconv are specified in configure.in. Example: Default location for libxml2 is C:\libxml2 You can either extract libxml2 to this folder. Folder structure should look like the following. C:\libxml2 | +- include | +- bin | +- lib Or extract to whatever place of your choice and edit the configure.in accordingly. You need to have zlib1.dll in a library path. You may copy this dll to libxml2/lib. 4.3 Compiling the source ------------------------ Extract the source distribution to a folder of your choice. (Example: C:\axis2c) Open a DOS shell and type: cd C:\axis2c\build\win32 C:\axis2c\build\win32>vcvars32.bat to access .Net tools (Note: You may need to set the PATH environment variable to vcvars32.bat if Windows complains that it cannot find this bat) C:\axis2c\build\win32>nmake install That's it! This will build the system and create a directory named 'deploy' under the build directory. The deploy folder structure is as follows. deploy | +- bin - server and other executables | | | +- samples - samples go here | | | +... | +- lib - library modules | +- services - deployed services | +- modules - deployed modules | +- include - all include files of axis2 | +- logs - system and client logs are written to this folder 4.4 Running the binaries ------------------------ You need to set a couple of environment variables before you can run the server and samples. Set the variable AXIS2C_HOME to the deploy folder (C:\axis2c\build\deploy) Add the path to lib directory to the PATH variable (%AXIS2C_HOME%\lib) Copy libxml2.dll, iconv.dll, and zlib1.dll to the Axis2/C lib folder (%AXIS2C_HOME%\lib) Now everything is set to run the server! C:\axis2c\build\deploy\bin>axis2_http_server.exe You should see the message Started Simple Axis2 HTTP Server... By default, the log is created under %AXIS2C_HOME%\logs folder with the name axis2.log. (Note: You may provide command line options to change the default behaviour. Type "axis2_http_server.exe -h" to learn about the usage) Now you can run any sample client deployed under %AXIS2C_HOME%\bin\samples\ Example: C:\axis2c\build\deploy\bin\samples>echo.exe 5. Installing Apache2 Web Server integration module (mod_axis2) --------------------------------------------------------------- 5.1 Building mod_axis2 from the source tree 5.1.1 On the Linux Platform Provide the Apache2 include file location as a configure option ./configure --with-apache2="" [other configure options] NOTE: Some apache2 distributions install APR (Apache Portable Run-time) include files in a separate location which is required to build mod_axis2. In that case use: ./configure --with-apache2=">" --with-apr="" [other configure options] Then build the source tree make make install This will install mod_axis2.so into your "/lib" 5. 1.3.0 On Win32 platform Provide the apache2 location in configure.in file in APACHE_INSTALL_DIR Example: APACHE_INSTALL_DIR = E:\Apache After compiling the sources (as described in section 4.3) build the mod_axis2.dll by issuing the command "nmake axis2_apache_module". This will build the mod_axis2.dll and copy it to %AXIS2C_HOME%\lib directory. Example: C:\axis2c\build\deploy\lib 5.2 Deploying in Apache2 Web Server NOTE: To do the following tasks, you might need super user privileges in your machine. Copy the mod_axis2 (libmod_axis2.so.0.2.0 on Linux and mod_axis2.dll in Windows) to "" as mod_axis2.so Example: cp $AXIS2C_HOME/lib/libmod_axis2.so.0.2.0 /usr/lib/apache2/modules/mod_axis2.so in Linux or copy C:\axis2c\build\deploy\lib\mod_axis2.dll C:\Apache2\modules\mod_axis2.so in Windows Edit the Apache2's configuration file (generally httpd.conf) and add the following directives LoadModule axis2_module /mod_axis2.so Axis2RepoPath Axis2LogFile Axis2MaxLogFileSize Axis2LogLevel LOG_LEVEL SetHandler axis2_module NOTE: Axis2 log file path should have write access to all users because by default Apache Web Server runs as nobody. NOTE: If you want to use a Shared Global Pool with Apache you have to give another entry called Axis2GlobalPoolSize.You have to give the size of the shared global pool in MB.If you doesn't set the value or if you set a negative value Apache module doesn't create shared global pool. Axis2GlobalPoolSize LOG_LEVEL can be one of following crit - Log critical errors only error - Log errors critical errors warn - Log warnings and above info - Log info and above debug - Log debug and above (default) trace - Log trace messages NOTE: Use forward slashes "/" for path separators in , and Make sure that the apache2 user has the correct permissions to above paths - Read permission to the repository - Write permission to the log file Restart apache2 and test whether mod_axis2 module is loaded by typing the URL http://localhost/axis2/services 6. Installing IIS (Interner Information Server) integration module (mod_axis2_IIS) ---------------------------------------------------------------------------------- 6.1 Building mod_axis2_IIS from the source tree After compiling the sources (as described in section 4.3) build the mod_axis2.dll by issuing the command "nmake axis2_IIS_module". This will build the mod_axis2_IIS.dll and copy it to %AXIS2C_HOME%\lib directory. Example: C:\axis2c\build\deploy\lib 6.2 Deploying in the IIS Add the following key to the registery. HKEY_LOCAL_MACHINE\SOFTWARE\Apache Axis2c\IIS ISAPI Redirector Under this registry key add the following entries. Add a string value with the name axis2c_home and a value of the axis2c home path i.e c:\axis2c Add a string value with the name log_file and a value of absolute path of the log file i.e c:\axis2c\logs\axis2.log Add a string value with the name log_level. The value can be one of the following trace - Log trace messages error - Log errors critical errors info - Log info and above critical - Log critical errors only debug - Log debug and above (default) warning - Log warnings Using the IIS management console, add a new virtual directory to the IIS/PWS web site called "axis2" The physical path of this virtual directory should be the axis2\lib directory (Where the mod_axis2_IIS.dll is in) Assign excecute permissions to this virtual directory. Using the IIS management console, add mod_axis2_IIS.dll as a filter to the IIS/PWS web site. The name of the filter can be any meaningful name. Restart IIS and test whether mod_axis2_IIS module is loaded by typing the URL http://localhost/axis2. Enjoy the Axis2/C soap engine! FAQ ======= 1. Although I was able to get simple axis server up, unable to run samples. This could happen because the AXIS2C_HOME environment variable is not set to the correct axis2 installation path. 2. What are the other dependencies Axis2/C has? Basically if you are willing to use libxml2 as your parser, you need to have it installed on your system. libxml2 - http://xmlsoft.org/downloads.html 3. I installed libxml2 installed in my system, but ./configure fails saying "libxml2 not found" Yes, you need to install libxml2-dev packages. 1. If you are using a debian based system apt-get install libxml2-dev 2. If you are using redhat/fedora based system. yum install libxml2-dev 3. If you compile libxml2 from source you will not get this error. 4. Is there any recommended packages, that I need to instal in my system? 1. automake, autoconf, libtool, aclocal 2. libxml2 and libxml2-dev 5. pkg-config 5. I tried several methods, browse through axis-c-dev and axis-c-user mail archives but I was not able solve it. Then you can ask from Axis2/C users or Axis2/C developers about it by sending your question to user = axis-c-user@ws.apache.org developer = axis-c-dev@ws.apache.org You can get subscribe to axis-c-user list by sending request to axis-c-dev list by sending request to subject of the request should be "subscribe" 6. This FAQ is not enough... You can help us by reporting your suggestions, complaints, problems and bugs Thank you for using Axis2/C ...