<!-- saved from url=(0022)http://internet.e-mail -->
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
  <title>Apache Axis2 Web Administrator's Guide</title>
  <link href="../css/axis-docs.css" rel="stylesheet" type="text/css" media="all" />
</head>

<body lang="en">
<h1 align="center">Apache Axis2 Web Administrator's Guide</h1>

<p>This document will give you detailed instructions on administration
console of Axis2 Web application. Axis2 Administration is all about
configuring Axis2 at the run time and the configuration will be transient.</p>

<p><i>Send your feedback to: <a
href="mailto:axis-dev@ws.apache.org">axis-dev@ws.apache.org</a></i>. Prefix
subject with [Axis2]. To subscribe to mailing list see <a
href="http://ws.apache.org/axis2/mail-lists.html">here.</a></p>

<h2>Contents</h2>
<ul>
  <li><a href="#Intro">Introduction</a>
    <ul>
      <li><p><a href="#login">Login into Administration Site</a></p>
      </li>
    </ul>
  </li>
  <li><a href="#adminoptions">Administration Options</a>
    <ul>
      <li><p><a href="#tools">Tools</a></p>
        <ul>
          <li><a href="#upservice">Upload Service</a></li>
        </ul>
      </li>
      <li><p><a href="#syscomponents">System components</a></p>
        <ul>
          <li><a href="#heading1">Available services</a></li>
          <li><a href="#servgroups">Available service groups</a></li>
          <li><a href="#avmodules">Available modules</a></li>
          <li><a href="#globalmodules">Globally engaged modules</a></li>
          <li><a href="#phases">Available phases</a></li>
        </ul>
      </li>
      <li><p><a href="#executionchains">Execution chains</a></p>
        <ul>
          <li><a href="#globalchains">Global chains</a></li>
          <li><a href="#operationchains">Operation specific chains</a></li>
        </ul>
      </li>
      <li><p><a href="#engaginmodule">Engage module</a></p>
      </li>
      <li><a href="#services">Services</a>
        <ul>
          <li><a href="#turnoffservice">Deactivate Service</a></li>
          <li><a href="#turnonservice">Activate Service</a></li>
          <li><a href="#editservicepara">Edit service parameters</a></li>
        </ul>
      </li>
      <li><p><a href="#context">Contexts</a></p>
        <ul>
          <li><a href="#viewhierarchy">View Hierarchy</a></li>
        </ul>
      </li>
    </ul>
  </li>
</ul>
<a name="Intro"></a>
<h3>Introduction</h3>

<p>Axis2 Web application has three main sections, 'Services'- lists all the
available services deployed in this server, 'Validate'-checks the system to
see whether all the required libraries are in place and views the system
information, and 'Administration'- Axis2 Web Administration module which is
the console for administering this Axis2 installation.</p>

<p>Axis2 Web Administration module provides a way to configure Axis2
dynamically. It's important to note that this dynamic configuration will NOT
be persistent, i.e. if the servlet container is restarted then all the
dynamic configuration changes will be lost.</p>
<a name="login"></a>
<h4>Login into Administration Site</h4>

<p>Once Axis2 is successfully installed, the Web application can be accessed
(See <a href="installationguide.html">Installation Guide</a> for
instructions). From <a href="#homepage">Axis2 Web Application Home page</a>
you can go to Administration page by following 'Administration' link, then
login page shown below will appear requesting user name and a password. The
default user name is 'admin' (without quotes) and default password is 'axis2'
(without quotes).</p>

<p align="center"><img alt="" src="images/adminlogin.jpg"></p>

<p>You can change the user name &amp; password values by changing following
two parameters in axis2.xml as required.</p>

<p align="center"><img alt="" src="images/parameters.jpg"></p>

<p>If the login is successful you will see the screen below. This is where
you can view the configuration and the state of the running system and
dynamically configure it.</p>

<p align="center"><img alt="" src="images/admin.jpg"></p>

<a name="adminoptions"></a>
<h3>Administration Options</h3>
<ul>
  <a name="tools"><b>Tools</b></a>
  <ul>
    <li><a href="#upservice">Upload Service</a></li>
  </ul>
  <a name="syscomponents"><b>System components</b></a>
  <ul>
    <li><a href="#heading1">Available services</a></li>
    <li><a href="#servgroups">Available service groups</a></li>
    <li><a href="#avmodules">Available modules</a></li>
    <li><a href="#globalmodules">Globally engaged modules</a></li>
    <li><a href="#phases">Available phases</a></li>
  </ul>
  <a name="executionchains"><b>Execution chains</b></a>
  <ul>
    <li><a href="#globalchains">Global chains</a></li>
    <li><a href="#operationchains">Operation specific chains</a></li>
  </ul>
  <b><a href="#engaginmodule">Engage module</a></b> <br>

  <ul>
    <li>For all Services</li>
    <li>For a Service Group</li>
    <li>For a Service</li>
    <li>For an Operation</li>
  </ul>
  <a name="services"><b>Services</b></a>
  <ul>
    <li><a href="#turnoffservice">Deactivate service</a></li>
    <li><a href="#turnonservice">Activate service</a></li>
    <li><a href="#editservicepara">Edit service parameters</a></li>
  </ul>
  <a name="context"><b>Contexts</b></a>
  <ul>
    <li><a href="#viewhierarchy">View Hierarchy</a></li>
  </ul>
</ul>
<a name="homepage"></a>
<h3>Axis2 Web Application Home Page</h3>

<p align="center"><strong><img alt=""
src="images/clip_image006.jpg"></strong></p>
<a name="upservice"></a>
<h3>Upload Services</h3>

<p>You can upload packaged Axis2<em> </em>service archive files using this
page. This can be done in two simple steps:</p>
<ul>
  <li>Browse to the location and select the axisService archive file you wish
    to upload</li>
  <li>Then click Upload</li>
</ul>

<p align="center"><img alt="" src="images/clip_image010.jpg"></p>
<a name="heading1"></a>

<h3>Available Services</h3>

<p>The functionality of the 'Available Services' option is almost same as the
functionality of Axis2 Web Application Home page 'Services' option where it
displays a list of deployed services and their operations. But as an
additional feature, the 'Available Services' page will list details of
modules that are engaged to the deployed services and their operations on a
global, service or on an operation level.</p>

<p>Using the 'Disengage' link one can disengage the corresponding module, as
long as the module is not globally engaged (engaged to all services and
operations).</p>

<p>Click on a specific service and it will give you the WSDL file of that
particular service.</p>

<p><strong>Faulty services</strong> of this system will also be listed on
this page. Click on each faulty service, it will take you to a page that
lists the exception stack trace of the exception that caused service to be
faulty.</p>

<p align="center"><img alt="" src="images/adminmain.jpg"></p>
<a name="servgroups"></a>

<h3>Available Service Groups</h3>

<p>Service group is a logical collection of related services and the
'Available Service Groups' link will list all the available service groups in
the system.</p>

<p align="center"><img alt="" src="images/servicegroups.jpg"></p>
<a name="avmodules"></a>
<h3>Available Modules</h3>

<p>To view the available modules in the 'modules' directory of the
'repository' click 'Available Modules' link. This will show you all the
available modules in the system. Those modules can be engaged dynamically.</p>

<p align="center"><img alt="" src="images/modules.jpg"></p>
<br>
<a name="globalmodules"></a>
<h3>Globally Engaged Modules</h3>

<p>From the 'Globally Engaged Modules' link you can view globally engaged
modules, if any. If a module was engaged globally then the handlers that
belong to that module will be executed irrespective of the service.</p>
<a name="phases"></a>
<h3>Available Phases</h3>

<p>The 'Available Phases' link will display all the available phases. In
Axis2 there are two levels of phases:</p>
<ul>
  <li>System predefined phases (not allowed to be changed)</li>
  <li>User defined phases</li>
</ul>

<p>The main difference between these two levels is that system predefined
phases will be invoked irrespective of the services, while user defined
phases will be invoked when the dispatcher finds the operation. Note that it
is essential for module developers and service writers to have a good
understanding of phases and phase ordering.</p>

<p align="center"><img alt="" src="images/viewphases.jpg"></p>
<br>
<a name="globalchains"></a>
<h3>Global Chains</h3>

<p>The 'Global Chains' link will display all the Global Execution Chains. The
most interesting feature of Axis2 Web Administration Module is that it
provides a very basic way of viewing the global phase list and handlers
inside the phases depending on both phase and handler orders. This kind of
information is extremely useful in debugging the system, as there is no other
way to list out handlers in the global chains. If you engage a new module,
the new handlers will be added to the global chains and will be displayed on
this page.</p>

<p align="center"><img alt="" src="images/globalchain.jpg"></p>
<br>
<a name="operationchains"></a>
<h3>Operation Specific Chains</h3>

<p>The 'Operation Specific Chains' link can be used to view the handlers
corresponding to a given service in the same order as it is in the real
execution chain.</p>

<p align="center"><img alt="" src="images/select_service_for_handler.jpg"></p>
<br>


<p>Select service of which service handlers you wish to view from the list
box, and click on the 'View' button to view handlers. The page below shows
service handlers of service <em>version</em></p>

<p align="center"><img alt="" src="images/serviceHandlers.jpg"></p>
<br>
<a name="engaginmodule"></a>
<h3>Engaging Modules</h3>

<p>The 'Engaging Modules' link allows to engage modules either globally (to
all services), to a service group, to a service or to an operation depending
on the module implementation. If the module was designed to engage the
handlers globally then handlers in the module can be included in any phase in
the system. It can be either a system predefined phase or a user defined
phase.</p>

<p>On the other hand, if the module was implemented in such a way that it is
going to be deployed to a service or to an operation, then the module cannot
be included in any of the <a href="#phases">System Predefined Phases</a>.
Thus it can only be included in <a href="#phases">User Defined Phases</a>.</p>

<p>Immediately after engaging the module you can see the status of engagement
indicating whether it is engaged properly or not.</p>

<p align="center"><img alt="" src="images/moduleengage.jpg"></p>

<a name="turnoffservice"></a>
<h3>Deactivate Service</h3>

<p>The 'Deactivate Service' link under 'Services' list will lead to the page
below. Deactivate service functionality provide a way to remove unnecessary
services from the running system, but the removal is transient which means if
you restart the system the service will be available.</p>

<p>To deactivate service, select service from list box, tick 'Deactivate
service' check box, then click on 'Deactivate' button. 'Clear' button will
clear the 'Deactivate service' check box</p>

<p align="center"><img alt="" src="images/inactivate.jpg"></p>
<br>
<a name="turnonservice"></a>
<h3>Activate Service</h3>

<p>The 'Activate Service' link under 'Services' list will lead to the page
below. Activate service functionality provides a way to activate services
while the system is running, but the activation is transient which means if
you restart the system the service will be inactive.</p>

<p>To activate service, select service from list box, tick 'Activate Service'
check box, then click on 'Activate' button. 'Clear' button will clear the
'Activate service' check box.</p>

<p align="center"><img alt="" src="images/activate.jpg"></p>
<br>
<a name="editservicepara"></a>
<h3>Edit Service Parameters</h3>

<p>This functionality provides a way to change parameters in a service or its
operations. These changes will be transient too, which means if you restart
the system changes will not be reflected.</p>

<p>The 'Edit Parameters' link under the 'Services' list on the navigation bar
will link to the page where you can select services to edit Parameters. Once
the service is selected click on the 'Edit Parameters' button. This will lead
to the page below.</p>

<p align="center"><img alt="" src="images/editserviecpara.jpg"></p>
<br>
<a name="viewhierarchy"></a>
<h3>View Hierarchy</h3>

<p>By listing current context hierarchy 'View Hierarchy' link provides a
means to look at the system state at run time. This will list out all the
available service group contexts, service contexts, operation context and
etc.</p>

</body>
</html>
