<!DOCTYPE html>
<!--
 | Generated by Apache Maven Doxia at 2015-07-03
 | Rendered using Apache Maven Fluido Skin 1.3.0
-->
<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="20150703" />
    <meta http-equiv="Content-Language" content="en" />
    <title>Apache Axis &#x2013; SOAPMonitor User's Guide</title>
    <link rel="stylesheet" href="./css/apache-maven-fluido-1.3.0.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.3.0.min.js"></script>

    
            </head>
        <body class="topBarDisabled">
          
                
                    
    
        <div class="container-fluid">
          <div id="banner">
        <div class="pull-left">
                                <div id="bannerLeft">
                <h2>Axis</h2>
                </div>
                      </div>
        <div class="pull-right">                                <a href="./" id="bannerRight">
                                                                                                <img src="images/axis-small.png"  alt="Apache Axis"/>
                </a>
      </div>
        <div class="clear"><hr/></div>
      </div>

      <div id="breadcrumbs">
        <ul class="breadcrumb">
                
                    
                              <li class="">
                    <a href="http://www.apache.org/" class="externalLink" title="Apache">
        Apache</a>
        </li>
      <li class="divider ">/</li>
            <li class="">
                    <a href="../../" title="Axis">
        Axis</a>
        </li>
      <li class="divider ">/</li>
            <li class="">
                    <a href="../" title="Axis 1.x">
        Axis 1.x</a>
        </li>
      <li class="divider ">/</li>
            <li class="">
                    <a href="./" title="Java">
        Java</a>
        </li>
      <li class="divider ">/</li>
        <li class="">SOAPMonitor User's Guide</li>
        
                
                    
                  <li id="publishDate" class="pull-right">Last Published: 2015-07-03</li> <li class="divider pull-right">|</li>
              <li id="projectVersion" class="pull-right">Version: 1.4.1-SNAPSHOT</li>
            
                            </ul>
      </div>

            
      <div class="row-fluid">
        <div id="leftColumn" class="span3">
          <div class="well sidebar-nav">
                
                    
                <ul class="nav nav-list">
                    <li class="nav-header">About</li>
                                
      <li>
    
                          <a href="index.html" title="Introduction">
          <i class="none"></i>
        Introduction</a>
            </li>
                  
      <li>
    
                          <a href="issue-tracking.html" title="Issue Tracking">
          <i class="none"></i>
        Issue Tracking</a>
            </li>
                  
      <li>
    
                          <a href="mail-lists.html" title="Mailing Lists">
          <i class="none"></i>
        Mailing Lists</a>
            </li>
                  
      <li>
    
                          <a href="source-repository.html" title="Source Repository">
          <i class="none"></i>
        Source Repository</a>
            </li>
                  
      <li>
    
                          <a href="artifacts.html" title="Artifacts & Dependencies">
          <i class="none"></i>
        Artifacts & Dependencies</a>
            </li>
                  
      <li>
    
                          <a href="apiDocs/index.html" title="Javadocs">
          <i class="none"></i>
        Javadocs</a>
            </li>
                              <li class="nav-header">Downloads</li>
                                
      <li>
    
                          <a href="releases.html" title="Releases">
          <i class="none"></i>
        Releases</a>
            </li>
                                                                                                                                            
      <li>
    
                          <a href="changelog.html" title="Changelogs">
          <i class="icon-chevron-right"></i>
        Changelogs</a>
                  </li>
                  
      <li>
    
                          <a href="snapshots.html" title="Snapshots">
          <i class="none"></i>
        Snapshots</a>
            </li>
                              <li class="nav-header">Documentation</li>
                                
      <li>
    
                          <a href="overview.html" title="Overview">
          <i class="none"></i>
        Overview</a>
            </li>
                  
      <li>
    
                          <a href="install.html" title="Installation">
          <i class="none"></i>
        Installation</a>
            </li>
                  
      <li>
    
                          <a href="user-guide.html" title="User's Guide">
          <i class="none"></i>
        User's Guide</a>
            </li>
                  
      <li>
    
                          <a href="developers-guide.html" title="Developer's Guide">
          <i class="none"></i>
        Developer's Guide</a>
            </li>
                  
      <li>
    
                          <a href="integration-guide.html" title="Integration Guide">
          <i class="none"></i>
        Integration Guide</a>
            </li>
                  
      <li>
    
                          <a href="architecture-guide.html" title="Architecture Guide">
          <i class="none"></i>
        Architecture Guide</a>
            </li>
                  
      <li>
    
                          <a href="reference.html" title="Reference Guide">
          <i class="none"></i>
        Reference Guide</a>
            </li>
                  
      <li>
    
                          <a href="reading.html" title="Reading Guide">
          <i class="none"></i>
        Reading Guide</a>
            </li>
                              <li class="nav-header">More...</li>
                                
      <li>
    
                          <a href="ant/ant.html" title="Ant Tasks">
          <i class="none"></i>
        Ant Tasks</a>
            </li>
                  
      <li>
    
                          <a href="maven/index.html" title="Maven Plugins">
          <i class="none"></i>
        Maven Plugins</a>
            </li>
                  
      <li>
    
                          <a href="castor/index.html" title="Castor Databinding">
          <i class="none"></i>
        Castor Databinding</a>
            </li>
                  
      <li>
    
                          <a href="xmlbeans/index.html" title="XmlBeans Databinding">
          <i class="none"></i>
        XmlBeans Databinding</a>
            </li>
                  
      <li>
    
                          <a href="transports/jms/index.html" title="JMS Transport">
          <i class="none"></i>
        JMS Transport</a>
            </li>
                  
      <li>
    
                          <a href="transports/http-hc3/index.html" title="HttpClient 3 Transport">
          <i class="none"></i>
        HttpClient 3 Transport</a>
            </li>
                  
      <li>
    
                          <a href="transports/http-javanet/index.html" title="java.net HTTP Transport">
          <i class="none"></i>
        java.net HTTP Transport</a>
            </li>
                  
      <li>
    
                          <a href="standalone-server/index.html" title="Stand-alone Server">
          <i class="none"></i>
        Stand-alone Server</a>
            </li>
                              <li class="nav-header">Apache</li>
                                
      <li>
    
                          <a href="http://www.apache.org/licenses/LICENSE-2.0.html" class="externalLink" title="License">
          <i class="none"></i>
        License</a>
            </li>
                  
      <li>
    
                          <a href="http://www.apache.org/foundation/sponsorship.html" class="externalLink" title="Sponsorship">
          <i class="none"></i>
        Sponsorship</a>
            </li>
                  
      <li>
    
                          <a href="http://www.apache.org/foundation/thanks.html" class="externalLink" title="Thanks">
          <i class="none"></i>
        Thanks</a>
            </li>
                  
      <li>
    
                          <a href="http://www.apache.org/security/" class="externalLink" title="Security">
          <i class="none"></i>
        Security</a>
            </li>
            </ul>
                
                    
                            <form id="search-form" action="http://www.google.com/search" method="get" >
    
  <input value="ws.apache.org/axis/java" name="sitesearch" type="hidden"/>
  <input class="search-query" name="q" id="query" type="text" />
</form>
<script type="text/javascript" src="http://www.google.com/coop/cse/brand?form=search-form"></script>
          
          <hr class="divider" />

           <div id="poweredBy">
                            <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="span9" >
                                  
            <!-- ~ Licensed to the Apache Software Foundation (ASF) under one
  ~ or more contributor license agreements. See the NOTICE file
  ~ distributed with this work for additional information
  ~ regarding copyright ownership. The ASF licenses this file
  ~ to you under the Apache License, Version 2.0 (the
  ~ "License"); you may not use this file except in compliance
  ~ with the License. You may obtain a copy of the License at
  ~
  ~ http://www.apache.org/licenses/LICENSE-2.0
  ~
  ~ Unless required by applicable law or agreed to in writing,
  ~ software distributed under the License is distributed on an
  ~ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
  ~ KIND, either express or implied. See the License for the
  ~ specific language governing permissions and limitations
  ~ under the License. -->
  

<div class="section">
<h2><a name="Table_of_Contents"></a>Table of Contents</h2>


<ul>
<li><a href="#Table_of_Contents">Table of Contents</a></li>
<li><a href="#Introduction">Introduction</a>
<ul>
<li><a href="#What_is_SOAPMonitor_">What is SOAPMonitor ?</a></li>
<li><a href="#When_should_I_use_it_">When should I use it ?</a></li></ul></li>
<li><a href="#Usage">Usage</a>
<ul>
<li><a href="#Preparation">Preparation</a></li>
<li><a href="#How_to_use_it_">How to use it ?</a></li></ul></li>
<li><a href="#Appendixes">Appendixes</a>
<ul>
<li><a href="#Version_comparison_chart">Version comparison chart</a></li>
<li><a href="#Error_Messages">Error Messages</a></li></ul></li></ul>

</div>


<div class="section">
<h2><a name="Introduction"></a>Introduction</h2>


<p>Web service developers often have the need to see the SOAP messages being used to invoke web services along with the results of those messages. The goal of the SOAP Monitor utility is to provide a way for these developers to monitor the SOAP messages being used without requiring any special configuration or restarting of the server.</p>


<div class="section">
<h3><a name="What_is_SOAPMonitor_"></a>What is SOAPMonitor ?</h3>


<p>It's a utility what can be found in the org.apache.axis.utils package. It provides the monitoring capability described above to Web service developers.</p>

</div>


<div class="section">
<h3><a name="When_should_I_use_it_"></a>When should I use it ?</h3>

<p>It's a good opportunity for using this utility that you hope to monitor the SOAP messages for debugging. You can see all SOAP messages of what you want to monitor without any additional developments, special configurations or restarting of the application server.</p>

<p><b>Please note that it doesn't display any protocol specific data such as HTTP protocol headers. If you need to do this, you should use the TCP Monitor (tcpmon). Please see the <a href="user-guide.html">Axis User's Guide</a> for details on tcpmon</b>.</p>

</div>

</div>


<div class="section">
<h2><a name="Usage"></a>Usage</h2>


<div class="section">
<h3><a name="Preparation"></a>Preparation</h3>


<ul>
  
<li><b>step 1:</b> Create an account for the administrator
    
<p>Open and edit the &quot;webapps/axis/WEB-INF/users.lst&quot;.<br />
      The default account for administrator is &quot;admin&quot;, set a password to anything you want.</p>
    
<p>ex.) Like as follows; -  i.e. &quot;admin password&quot;.</p>
    
<div class="source">
<pre>user1 pass1
user2
user3 pass3
admin password</pre></div>
  </li>

  
<li><b>step 2:</b> Setting CLASSPATH
    
<p>Before running this utility, you'll need to make sure that your CLASSPATH includes:</p>
    
<ul>
      
<li>axis.jar</li>
      
<li>jaxrpc.jar</li>
      
<li>saaj.jar</li>
      
<li>commons-logging.jar</li>
      
<li>commons-discovery.jar</li>
      
<li>activation.jar</li>
      
<li>mail.jar</li>
      
<li>A JAXP-1.1 compliant XML parser such as Xerces or Crimson</li>
    </ul>
  </li>
  
  
<li><b>That's all.</b></li>
</ul>

</div>


<div class="section">
<h3><a name="How_to_use_it_"></a>How to use it ?</h3>


<ul>
  
<li><b>step 0:</b> Make sure you have completed <a href="#prepare">the preparation phase.</a></li>

  
<li><b>step 1:</b> Start the SOAPMonitor application.
    
<p><tt>% java org.apache.axis.utils.SOAPMonitor [-u admin] [-w password] [-l axisURL]</tt></p>
    
<p>or</p>
    
<p><tt>% javaw org.apache.axis.utils.SOAPMonitor [-u admin] [-w password] [-l axisURL]</tt></p>
  </li>

  
<li><b>step 2:</b> Login
    
<p>Try login with the account which you specified as an administrator.</p>
    
<p><img src="images/LoginDialog.jpg" alt="" /></p>
  </li>

  
<li><b>step 3:</b> Please wait for a while.
    
<p><img src="images/DataLoading.jpg" width="400" alt="" /></p>
  </li>

  
<li><b>step 4:</b> Administration screen will be displayed
    
<p><img src="images/InitialScreen.jpg" alt="" /></p>
  </li>

  
<li><b>step 5-a:</b> To enable monitoring
    
<p>Click services to enable monitoring, then push &quot;Turn On&quot; button.</p>
    
<p><img src="images/ToEnableMonitoring.jpg" alt="" /></p>
    
<p>The following screen should be displayed.</p>
    
<p><img src="images/AfterTurnOn.jpg" alt="" /></p>
  </li>

  
<li><b>step 5-b:</b> To disable monitoring
    
<p>Click services to disable monitoring, then push &quot;Turn Off&quot; button.</p>
    
<p><img src="images/ToDisableMonitoring.jpg" alt="" /></p>
    
<p>The following screen should be displayed.</p>
    
<p><img src="images/AfterTurnOff.jpg" alt="" /></p>
  </li>

  
<li><b>step 6:</b> Save changes
    
<p>Push &quot;Save changes&quot; button to save the current state.</p>
    
<p>The following screen should be displayed.</p>
    
<p><img src="images/DeployStatus.jpg" alt="" /></p>
  </li>

  
<li><b>step 7:</b> Monitoring
    
<p>Push &quot;Monitoring&quot; tab to start monitoring with the current settings.</p>
    
<p>The following screen should be displayed.</p>
    
<p><img src="images/MonitoringScreen.jpg" alt="" /></p>
  </li>
</ul>

</div>

</div>


<div class="section">
<h2><a name="Appendixes"></a>Appendixes</h2>


<div class="section">
<h3><a name="Version_comparison_chart"></a>Version comparison chart</h3>


<table border="0" class="table table-striped">
  
<tr class="a">
    
<th>Item</th>
    
<th>SOAPMonitorApplet(Old version)</th>
    
<th>SOAPMonitor(<a class="externalLink" href="http://cvs.apache.org/viewcvs.cgi/ws-axis/java/src/org/apache/axis/utils/SOAPMonitor.java?view=markup">This version</a>)</th>
  </tr>
  
<tr class="b">
    
<td>App Type</td>
    
<td>Applet</td>
    
<td>Swing application</td>
  </tr>
  
<tr class="a">
    
<td>Security</td>
    
<td>N/A (No authentication)</td>
    
<td>OK (Authentication added)</td>
  </tr>
  
<tr class="b">
    
<td>Install &amp; Use</td>
    
<td>
      
<ol style="list-style-type: decimal">
        
<li>Compile the component, at first</li>
        
<li>Deploy the soapmonitor handler to &quot;server-config.wsdd&quot;</li>
        
<li>Deploy a service which to be monitored with the soapmonitor handler</li>
        
<li>Have an access to &quot;http://localhost:8080/axis/SOAPMonitor&quot;</li>
        
<li>Redeploy the service with no soapmonitor to disable monitoring</li>
      </ol>
      
<ul>
        
<li>More detail is <a class="externalLink" href="http://www.sosnoski.com/presents/java-xml/axis/axis-monitor.html">here</a>.</li>
        
<li>All of steps are the non-GUI based operations and these process are complicated for users</li>
      </ul>
    </td>
    
<td>Just do &quot;java org.apache.axis.utils.SOAPMonitor&quot; (within the axis.jar)
       
<ul>
         
<li>All of steps are the GUI based operations</li>
       </ul>
    </td>
  </tr>
</table>

</div>


<div class="section">
<h3><a name="Error_Messages"></a>Error Messages</h3>


<p>You may meet the following screens, if you have an access denied.</p>


<ul>
  
<li><b>In case of &quot;Unknown host&quot;:</b>
    
<p><img src="images/UnknownHost.jpg" alt="" /></p>
  </li>
  
<li><b>In case of &quot;Port mismatch&quot;:</b>
    
<p><img src="images/ConnectionRefused.jpg" alt="" /></p>
  </li>
  
<li><b>In case of &quot;Authorization failure&quot;:</b>
    
<p><img src="images/Unauthorized.jpg" alt="" /></p>
  </li>
</ul>

</div>

</div>

  

                  </div>
            </div>
          </div>

    <hr/>

    <footer>
            <div class="container-fluid">
              <div class="row span12">Copyright &copy;                    2000-2015
                        <a href="http://www.apache.org/">The Apache Software Foundation</a>.
            All Rights Reserved.      
                    
      </div>

        
        
                </div>
    </footer>
  </body>
</html>