You are viewing a plain text version of this content. The canonical link for it is here.
Posted to axis-cvs@ws.apache.org by da...@apache.org on 2004/06/09 14:28:04 UTC

cvs commit: ws-axis/c INSTALL

damitha     2004/06/09 05:28:04

  Added:       c        INSTALL
  Log:
  
  
  Revision  Changes    Path
  1.1                  ws-axis/c/INSTALL
  
  Index: INSTALL
  ===================================================================
  How to build and use Axis C++ from cvs source.
  =============================================
  
  This guide will help you to start with Axis C++. I'll explain the minimum
  steps needed to build and run Axis C++, and warn you about the common 
  pitfalls.
  The environment I'm using
  RedHat 9(2.4.20-8)
  expat-1.95.7
  xerces-c-src2_2_0(I build xerces from source)
  httpd-2.0.48
  apache_1.3.27
  
  You must define some environment variables in order to build.
  #AXISCPP_HOME is where you checkout Axis C++
  AXISCPP_HOME="/home/damitha/projects/cvshead"
  AXIS_HOME="/home/damitha/Axis"
  EXPAT_HOME="/usr/local/expat1957"
  XERCESC_HOME="/usr/local/xerces-c"
  LD_LIBRARY_PATH="$XERCESC_HOME/lib:$EXPAT_HOME/lib:$AXISCPP_HOME/bin:$AXIS_HOME/libs:$LD_LIBRARY_PATH"
  export AXISCPP_HOME AXIS_HOME XERCESC_HOME EXPAT_HOME LD_LIBRARY_PATH
  
  Axis C++ core is independant of the parser layer and transport layer.
  You can write your own transport or parser library according to the APIs provided. Currently Axis C++
  provides API implementations for Xerces-c and Expat. It also provides it's own client side transport
  library implementation. In the server side deployment, Axis C++ provides two modules that can be loaded
  into apache1.3 and apache 2 as shared libraries.
  So this sums upto two posibilities.
  You can deploy Axis C++ server 
      on Apache2 with xercesc parser or expat parser(Only one parser at a time)
      on Apache1.3 with xercesc parer or expat parser
  
  So if you use only Expat no need to define XERCESC_HOME vice versa.
  
  When you build Axis C++ you can give options
  1) Build for Apache2
     with Expat parser support only
     with Xerces paresr support only
     with both parser support
  2) Build for Apache1.3
     with Expat parser support only
     with Xerces parser support only
     with both parser support
  
  You can choose these selections on $AXISCPP_HOME/configure.ac
  
  ------------------------------------------------------------
  #{apache2 block starts
  #if you use apache2
  #if you need to build both axis_expat and axis_xerces libraries
                                                                                                                               
  AC_OUTPUT(Makefile src/Makefile src/common/Makefile src/soap/Makefile src/wsdd/Makefile src/xml/Makefile src/transport/Makefile src/transport/axis/Makefile src/engine/Makefile src/engine/server/Makefile src/engine/client/Makefile  src/server/Makefile src/server/apache2/Makefile src/server/simple_axis_server/Makefile src/server/adminservice/Makefile src/client/Makefile src/client/adminclient/Makefile src/xml/expat/Makefile src/xml/xerces/Makefile)
                                                                                                                               
  #if you need to build only axis_expat
                                                                                                                               
  #AC_OUTPUT(Makefile src/Makefile src/common/Makefile src/soap/Makefile src/wsdd/Makefile src/xml/Makefile src/transport/Makefile src/transport/axis/Makefile src/engine/Makefile src/engine/server/Makefile src/engine/client/Makefile  src/server/Makefile src/server/apache2/Makefile src/server/simple_axis_server/Makefile src/server/adminservice/Makefile src/client/Makefile src/client/adminclient/Makefile src/xml/expat/Makefile)
  
  #if you need to build only axis_xerces
                                                                                                                               
  #AC_OUTPUT(Makefile src/Makefile src/common/Makefile src/soap/Makefile src/wsdd/Makefile src/xml/Makefile src/transport/Makefile src/transport/axis/Makefile src/engine/Makefile src/engine/server/Makefile src/engine/client/Makefile  src/server/Makefile src/server/apache2/Makefile src/server/simple_axis_server/Makefile src/server/adminservice/Makefile src/client/Makefile src/client/adminclient/Makefile src/xml/xerces/Makefile)
                                                                                                                               
  #}apache2 block ends
                                                                                                                               
  #{apache1.3 block starts
  #if you use apache1.3
                                                                                                                               
  #if you need to build both axis_expat and axis_xerces libraries
                                                                                                                               
  #AC_OUTPUT(Makefile src/Makefile src/common/Makefile src/soap/Makefile src/wsdd/Makefile src/xml/Makefile src/transport/Makefile src/transport/axis/Makefile src/engine/Makefile src/engine/server/Makefile src/engine/client/Makefile  src/server/Makefile src/server/apache/Makefile src/server/simple_axis_server/Makefile src/server/adminservice/Makefile src/client/Makefile src/client/adminclient/Makefile src/xml/expat/Makefile src/xml/xerces/Makefile)
                                                                                                                               
  #if you need to build only axis_expat
  #AC_OUTPUT(Makefile src/Makefile src/common/Makefile src/soap/Makefile src/wsdd/Makefile src/xml/Makefile src/transport/Makefile src/transport/axis/Makefile src/engine/Makefile src/engine/server/Makefile src/engine/client/Makefile  src/server/Makefile src/server/apache/Makefile src/server/simple_axis_server/Makefile src/server/adminservice/Makefile src/client/Makefile src/client/adminclient/Makefile src/xml/expat/Makefile)
                                                                                                                               
  #if you need to build only axis_xerces
                                                                                                                               
  #AC_OUTPUT(Makefile src/Makefile src/common/Makefile src/soap/Makefile src/wsdd/Makefile src/xml/Makefile src/transport/Makefile src/transport/axis/Makefile src/engine/Makefile src/engine/server/Makefile src/engine/client/Makefile  src/server/Makefile src/server/apache/Makefile src/server/simple_axis_server/Makefile src/server/adminservice/Makefile src/client/Makefile src/client/adminclient/Makefile src/xml/xerces/Makefile)
                                                                                                                               
  #}apache1.3 block ends
  ------------------------------------------------------------
  
  You need also do a selection at $AXISCPP_HOME/src/xml/Makefile.am
  
  -----------------------------------------------------------
  SUBDIRS = expat xerces #Here I build both expat and xerces libraries
  #SUBDIRS = expat
  #SUBDIRS = xerces
  ---------------------------------------------------------
  
  And again in $AXISCPP_HOME/src/server/Makefile.am
  
  ---------------------------------------------------------
  #if you use apache2
  SUBDIRS = apache2 adminservice #Here I build for Apache2
                                                                                                                               
  #if you use apache1.3
  #SUBDIRS = apache adminservice
  ---------------------------------------------------------
  
  Now
  #cd $AXISCPP_HOME
  #sh build.sh
  
  It will build Axis C++ server, Client and samples
  
  #ls $AXISCPP_HOME/bin
  adminclient               libaxiscpp_client.so.0.0.0  libaxis_expat.a             libaxis_xercesc.la
  CVS                       libaxiscpp_mod2.a           libaxis_expat.la            libaxis_xercesc.so
  libAdminService.a         libaxiscpp_mod2.la          libaxis_expat.so            libaxis_xercesc.so.0
  libAdminService.la        libaxiscpp_mod2.so          libaxis_expat.so.0          libaxis_xercesc.so.0.0.0
  libAdminService.so        libaxiscpp_mod2.so.0        libaxis_expat.so.0.0.0      libserver_engine.a
  libAdminService.so.0      libaxiscpp_mod2.so.0.0.0    libaxis_transport.a         libserver_engine.la
  libAdminService.so.0.0.0  libaxiscpp_mod.a            libaxis_transport.la        libserver_engine.so
  libaxiscpp_client.a       libaxiscpp_mod.la           libaxis_transport.so        libserver_engine.so.0
  libaxiscpp_client.la      libaxiscpp_mod.so           libaxis_transport.so.0      libserver_engine.so.0.0.0
  libaxiscpp_client.so      libaxiscpp_mod.so.0         libaxis_transport.so.0.0.0  README.TXT
  libaxiscpp_client.so.0    libaxiscpp_mod.so.0.0.0     libaxis_xercesc.a
  
  libaxis_mod.so is apache module which is loaded when apache loads
  libaxis_mod2.so is apache2 module which is loaded when apache2 loads
  libserver_engine.so is the Axis C++ server engine which is loaded by libaxis_mod(2).so module
  libaxiscpp_client.so is Axis C++ client library
  libaxis_transport.so is the Axis C++ client transport library
  libaxis_expat.so is the expat parser library implementation for Axis C++
  libaxis_xercesc.so is the xercesc parser library implmentation for Axis C++
  
  Also $AXISCPP_HOME/sampels/server samples are built and installed in
  $AXIS_HOME/web_services
  #ls $AXIS_HOME/
  
  libcalculator.so        libcgroupB.so           libdoclitgroupB.so         libgroupB.so
  libAdminService.so    libcalculator.so.0      libcgroupB.so.0         libdoclitgroupB.so.0       libgroupB.so.0
  libAdminService.so.0  libcalculator.so.0.0.0  libcgroupB.so.0.0.0     libdoclitgroupB.so.0.0.0   libgroupB.so.0.0.0
  libbase.a             libcbase.a              libdoclitbase.a         libdoclitmathops.a         libmathops.a
  libbase.la            libcbase.la             libdoclitbase.la        libdoclitmathops.la        libmathops.la
  libbase.so            libcbase.so             libdoclitbase.so        libdoclitmathops.so        libmathops.so
  libbase.so.0          libcbase.so.0           libdoclitbase.so.0      libdoclitmathops.so.0      libmathops.so.0
  libbase.so.0.0.0      libcbase.so.0.0.0       libdoclitbase.so.0.0.0  libdoclitmathops.so.0.0.0  libmathops.so.0.0.0
  libcalculator.a       libcgroupB.a            libdoclitgroupB.a       libgroupB.a                README.txt
  libcalculator.la      libcgroupB.la           libdoclitgroupB.la      libgroupB.la
  
  $AXISCPP_HOME/samples/client samples are built and executable are in $AXISCPP_HOME/samples/client
  
  parser and transport layer both is loaded in to axis engine when it is
  loaded by apache.
  
  So when you run the following script from $AXIS_HOME(eg:/usr/local/Axis)
  
  rm /usr/local/apache/libexec/libaxiscpp_mod.so
  rm webservices/libAdminService.so
  rm libs/libserver_engine.so
  rm libs/libaxis_transport.so
  rm libs/libaxis_xmlparser.so
  cp -f $AXISCPP_HOME/bin/libAdminService.so webservices/
  cp -f $AXISCPP_HOME/bin/libserver_engine.so libs/
  cp -f $AXISCPP_HOME/bin/libaxiscpp_mod.so /usr/local/apache/libexec/ cp -f
  $AXISCPP_HOME/bin/libaxis_transport.so libs/
  cp -f $AXISCPP_HOME/bin/libaxis_expat.so libs/libaxis_xmlparser.so
  /usr/local/apache/bin/apachectl stop
  sleep 2
  /usr/local/apache/bin/apachectl start
  
  all the libraries are loaded.
  
  Note that in the line no. 10 of the script above we change
  the name libaxis_expat.so to libaxis_xmlparser.so.
  If we use xerces we need to change
  libaxis_xercesc.so to libaxis_xmlparser.so.
  
  To run interop samples
  #cd $AXISCPP_HOME/samples/client
  #sh run_interoptests.sh