<!DOCTYPE html>
<!--
 | Generated by Apache Maven Doxia Site Renderer 1.11.1 at 2022-07-14 
 | Rendered using Apache Maven Fluido Skin 1.6
-->
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <meta name="Date-Revision-yyyymmdd" content="20220714" />
    <meta http-equiv="Content-Language" content="en" />
    <title>Apache Axis2 &#x2013; Apache Axis2 Web Administrator's Guide</title>
    <link rel="stylesheet" href="../css/apache-maven-fluido-1.6.min.css" />
    <link rel="stylesheet" href="../css/site.css" />
    <link rel="stylesheet" href="../css/print.css" media="print" />
      <script type="text/javascript" src="../js/apache-maven-fluido-1.6.min.js"></script>
<meta name="generator" content="HTML Tidy for Windows (vers 14 June 2007), see www.w3.org" /><meta http-equiv="content-type" content="" />      </head>
    <body class="topBarDisabled">
      <div class="container-fluid">
      <div id="banner">
        <div class="pull-left"><a href="http://www.apache.org/" id="bannerLeft"><img src="http://www.apache.org/images/asf_logo_wide.png"  alt="Apache Axis2"/></a></div>
        <div class="pull-right"><a href=".././" id="bannerRight"><img src="../images/axis.jpg" /></a></div>
        <div class="clear"><hr/></div>
      </div>

      <div id="breadcrumbs">
        <ul class="breadcrumb">
        <li id="publishDate">Last Published: 2022-07-14<span class="divider">|</span>
</li>
          <li id="projectVersion">Version: 1.8.2<span class="divider">|</span></li>
        <li class=""><a href="http://www.apache.org" class="externalLink" title="Apache">Apache</a><span class="divider">/</span></li>
      <li class=""><a href="../index.html" title="Axis2/Java">Axis2/Java</a><span class="divider">/</span></li>
    <li class="active ">Apache Axis2 Web Administrator's Guide</li>
        </ul>
      </div>
      <div class="row-fluid">
        <div id="leftColumn" class="span2">
          <div class="well sidebar-nav">
<ul class="nav nav-list">
          <li class="nav-header">Axis2/Java</li>
    <li><a href="../index.html" title="Home"><span class="none"></span>Home</a>  </li>
    <li><a href="../download.html" title="Downloads"><span class="none"></span>Downloads</a>  </li>
    <li><a href="javascript:void(0)" title="Release Notes"><span class="icon-chevron-down"></span>Release Notes</a>
      <ul class="nav nav-list">
    <li><a href="../release-notes/1.6.1.html" title="1.6.1"><span class="none"></span>1.6.1</a>  </li>
    <li><a href="../release-notes/1.6.2.html" title="1.6.2"><span class="none"></span>1.6.2</a>  </li>
    <li><a href="../release-notes/1.6.3.html" title="1.6.3"><span class="none"></span>1.6.3</a>  </li>
    <li><a href="../release-notes/1.6.4.html" title="1.6.4"><span class="none"></span>1.6.4</a>  </li>
    <li><a href="../release-notes/1.7.0.html" title="1.7.0"><span class="none"></span>1.7.0</a>  </li>
    <li><a href="../release-notes/1.7.1.html" title="1.7.1"><span class="none"></span>1.7.1</a>  </li>
    <li><a href="../release-notes/1.7.2.html" title="1.7.2"><span class="none"></span>1.7.2</a>  </li>
    <li><a href="../release-notes/1.7.3.html" title="1.7.3"><span class="none"></span>1.7.3</a>  </li>
    <li><a href="../release-notes/1.7.4.html" title="1.7.4"><span class="none"></span>1.7.4</a>  </li>
    <li><a href="../release-notes/1.7.5.html" title="1.7.5"><span class="none"></span>1.7.5</a>  </li>
    <li><a href="../release-notes/1.7.6.html" title="1.7.6"><span class="none"></span>1.7.6</a>  </li>
    <li><a href="../release-notes/1.7.7.html" title="1.7.7"><span class="none"></span>1.7.7</a>  </li>
    <li><a href="../release-notes/1.7.8.html" title="1.7.8"><span class="none"></span>1.7.8</a>  </li>
    <li><a href="../release-notes/1.7.9.html" title="1.7.9"><span class="none"></span>1.7.9</a>  </li>
    <li><a href="../release-notes/1.8.0.html" title="1.8.0"><span class="none"></span>1.8.0</a>  </li>
      </ul>
  </li>
    <li><a href="../modules/index.html" title="Modules"><span class="none"></span>Modules</a>  </li>
    <li><a href="../tools/index.html" title="Tools"><span class="none"></span>Tools</a>  </li>
          <li class="nav-header">Documentation</li>
    <li><a href="../docs/toc.html" title="Table of Contents"><span class="none"></span>Table of Contents</a>  </li>
    <li><a href="../docs/installationguide.html" title="Installation Guide"><span class="none"></span>Installation Guide</a>  </li>
    <li><a href="../docs/quickstartguide.html" title="QuickStart Guide"><span class="none"></span>QuickStart Guide</a>  </li>
    <li><a href="../docs/userguide.html" title="User Guide"><span class="none"></span>User Guide</a>  </li>
    <li><a href="../docs/jaxws-guide.html" title="JAXWS Guide"><span class="none"></span>JAXWS Guide</a>  </li>
    <li><a href="../docs/pojoguide.html" title="POJO Guide"><span class="none"></span>POJO Guide</a>  </li>
    <li><a href="../docs/spring.html" title="Spring Guide"><span class="none"></span>Spring Guide</a>  </li>
    <li class="active"><a href="#"><span class="none"></span>Web Administrator's Guide</a>
  </li>
    <li><a href="../docs/migration.html" title="Migration Guide (from Axis1)"><span class="none"></span>Migration Guide (from Axis1)</a>  </li>
          <li class="nav-header">Resources</li>
    <li><a href="../faq.html" title="FAQ"><span class="none"></span>FAQ</a>  </li>
    <li><a href="../articles.html" title="Articles"><span class="none"></span>Articles</a>  </li>
    <li><a href="http://wiki.apache.org/ws/FrontPage/Axis2/" class="externalLink" title="Wiki"><span class="none"></span>Wiki</a>  </li>
    <li><a href="../refLib.html" title="Reference Library"><span class="none"></span>Reference Library</a>  </li>
    <li><a href="../apidocs/index.html" title="Online Java Docs"><span class="none"></span>Online Java Docs</a>  </li>
          <li class="nav-header">Get Involved</li>
    <li><a href="../overview.html" title="Overview"><span class="none"></span>Overview</a>  </li>
    <li><a href="../git.html" title="Checkout the Source"><span class="none"></span>Checkout the Source</a>  </li>
    <li><a href="../mail-lists.html" title="Mailing Lists"><span class="none"></span>Mailing Lists</a>  </li>
    <li><a href="../release-process.html" title="Release Process"><span class="none"></span>Release Process</a>  </li>
    <li><a href="../guidelines.html" title="Developer Guidelines"><span class="none"></span>Developer Guidelines</a>  </li>
    <li><a href="../siteHowTo.html" title="Build the Site"><span class="none"></span>Build the Site</a>  </li>
          <li class="nav-header">Project Information</li>
    <li><a href="../team-list.html" title="Project Team"><span class="none"></span>Project Team</a>  </li>
    <li><a href="../issue-tracking.html" title="Issue Tracking"><span class="none"></span>Issue Tracking</a>  </li>
    <li><a href="http://svn.apache.org/viewvc/axis/axis2/java/core/trunk/" class="externalLink" title="Source Code"><span class="none"></span>Source Code</a>  </li>
    <li><a href="../thanks.html" title="Acknowledgements"><span class="none"></span>Acknowledgements</a>  </li>
          <li class="nav-header">Apache</li>
    <li><a href="http://www.apache.org/licenses/LICENSE-2.0.html" class="externalLink" title="License"><span class="none"></span>License</a>  </li>
    <li><a href="http://www.apache.org/foundation/sponsorship.html" class="externalLink" title="Sponsorship"><span class="none"></span>Sponsorship</a>  </li>
    <li><a href="http://www.apache.org/foundation/thanks.html" class="externalLink" title="Thanks"><span class="none"></span>Thanks</a>  </li>
    <li><a href="http://www.apache.org/security/" class="externalLink" title="Security"><span class="none"></span>Security</a>  </li>
  </ul>
          <hr />
          <div id="poweredBy">
              <div class="clear"></div>
              <div class="clear"></div>
              <div class="clear"></div>
              <div class="clear"></div>
  <a href="http://maven.apache.org/" title="Built by Maven" class="poweredBy"><img class="builtBy" alt="Built by Maven" src="../images/logos/maven-feather.png" /></a>
              </div>
          </div>
        </div>
        <div id="bodyColumn"  class="span10" >
<html xmlns="http://www.w3.org/1999/xhtml">


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

<p>This document gives you detailed information on the
administration console of the Apache Axis2 Web application. Apache
Axis2 Administration is all about configuring Apache Axis2 at run
time, where the configuration is transient.</p>

<p><i>Send your feedback to: <a class="externalLink" href="mailto:java-dev@axis.apache.org?subject=[Axis2]">java-dev@axis.apache.org</a></i>.
(Subscription details are available on the <a href="../mail-lists.html">Axis2 site</a>.)
Kindly prefix every email subject with [Axis2].</p>
<section>
<h2><a name="Contents"></a>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" id="Intro"></a>
<section>
<h3><a name="Introduction"></a>Introduction</h3>

<p>The Apache 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' is the Axis2 Web Administration module which
is the console for administering the Apache Axis2 installation.</p>

<p>The 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" id="login"></a>
<section>
<h4><a name="Log_on_to_the_Administration_Site"></a>Log on to the Administration Site</h4>

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

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

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

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

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

<p align="center"><img src="images/admin.jpg" alt="" /></p>
<a name="adminoptions" id="adminoptions"></a>
</section></section><section>
<h3><a name="Administration_Options"></a>Administration Options</h3>

<div style="margin-left: 2em"><a name="tools" id="tools"><b>Tools</b></a>

<ul>

<li><a href="#upservice">Upload Service</a></li>
</ul>
<a name="syscomponents" id="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" id="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" id="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" id="context"><b>Contexts</b></a>

<ul>

<li><a href="#viewhierarchy">View Hierarchy</a></li>
</ul>
</div>
<a name="homepage" id="homepage"></a>
</section><section>
<h3><a name="Apache_Axis2_Web_Application_Home_Page"></a>Apache Axis2 Web Application Home Page</h3>

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

<p>You can upload packaged Apache Axis2 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 src="images/clip_image010.jpg" alt="" /></p>
<a name="heading1" id="heading1"></a>
</section><section>
<h3><a name="Available_Services"></a>Available Services</h3>

<p>The functionality of the 'Available Services' option is almost
the same as the functionality of the 'Services' option on the Axis2
Web Application Home page, where it displays a list of deployed
services and their operations. As an additional feature, the
'Available Services' page lists 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, you can disengage the corresponding
module as long as the module is not globally engaged (i.e., engaged
to all the services and operations).</p>

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

<p><b>Faulty services</b> of this system will also be
listed on this page. Click on a faulty service to view a page that
lists the exception stack trace of the exception, which caused the
service to be faulty.</p>

<p align="center"><img src="images/adminmain.jpg" alt="" /></p>
<a name="servgroups" id="servgroups"></a>
</section><section>
<h3><a name="Available_Service_Groups"></a>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 src="images/servicegroups.jpg" alt="" /></p>
<a name="avmodules" id="avmodules"></a>
</section><section>
<h3><a name="Available_Modules"></a>Available Modules</h3>

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

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

<p>Click the 'Globally Engaged Modules' to view the globally
engaged modules, if any. If a module is engaged globally, then the
handlers that belong to that module will be executed irrespective
of the service.</p>
<a name="phases" id="phases"></a>
</section><section>
<h3><a name="Available_Phases"></a>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 the 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 src="images/viewphases.jpg" alt="" /></p>
<br />
<a name="globalchains" id="globalchains"></a>
</section><section>
<h3><a name="Global_Chains"></a>Global Chains</h3>

<p>The 'Global Chains' link will display all the Global Execution
Chains. The most interesting feature of the Axis2 Web
Administration Module is that it provides a very basic method of
viewing the global phase list and handlers inside the phases
depending on both the 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 src="images/globalchain.jpg" alt="" /></p>
<br />
<a name="operationchains" id="operationchains"></a>
</section><section>
<h3><a name="Operation_Specific_Chains"></a>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 src="images/select_service_for_handler.jpg" alt="" /></p>
<br />

<p>Select the service of whose service handlers you wish to view
from the list, and click 'View' to view the handlers. The page
below shows the service handlers of the service
<i>version</i></p>

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

<p>The 'Engaging Modules' link allows you 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 the 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
the engagement indicating whether it is engaged properly or
not.</p>

<p align="center"><img src="images/moduleengage.jpg" alt="" /></p>
<a name="turnoffservice" id="turnoffservice"></a>
</section><section>
<h3><a name="Deactivate_Service"></a>Deactivate Service</h3>

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

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

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

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

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

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

<p>This functionality provides a way to change the parameters in a
service or its operations. These changes will be transient too,
which means if you restart the system, the 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 the
services of which you want to edit the parameters. Once the service
is selected, click 'Edit Parameters'.. This will open the page
shown below.</p>

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

<p>By listing the current context hierarchy, the '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 contexts, etc.</p>
</section>
</html>
        </div>
      </div>
    </div>
    <hr/>
    <footer>
      <div class="container-fluid">
        <div class="row-fluid">
            <p>Copyright &copy;2004&#x2013;2022
<a href="https://www.apache.org/">The Apache Software Foundation</a>.
All rights reserved.</p>
        </div>
        </div>
    </footer>
    </body>
</html>