blob: c957545cbfcd30a801f30009d2ded20d96fc25a8 [file] [log] [blame]
<!DOCTYPE html>
<!--
| Generated by Apache Maven Doxia Site Renderer 1.9.2 at 2021-08-01
| 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="20210801" />
<meta http-equiv="Content-Language" content="en" />
<title>Apache Axis2 &#x2013; The SOAP Monitor Module</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 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: 2021-08-01<span class="divider">|</span>
</li>
<li id="projectVersion">Version: 1.8.0<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 ">The SOAP Monitor Module</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.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><a href="../docs/webadminguide.html" title="Web Administrator's Guide"><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>
<h1>Using the SOAP Monitor</h1>
<p><b>Warning: the SOAP Monitor uses a protocol based on Java serialization
and is therefore vulnerable to attacks. It should be used exclusively as a
development and debugging tool, but never be permanently enabled on production
systems.</b></p>
<p>Web service developers often want to see the SOAP messages that are being
used to invoke the Web services, along with the results of those messages.
The goal of the SOAP Monitor utility is to provide a way for the developers
to monitor these SOAP messages without requiring any special configuration or
restarting the server.</p>
<p>In this utility, a handler has been written and added to the global
handler chain. As SOAP requests and responses are received, the SOAP message
information is forwarded to a SOAP monitor service where it can be displayed
using a Web browser interface. The SOAP message information is accessed by a
Web browser by going to http://localhost:8080/axis2/SOAPMonitor (where 8080
is the port number where the application server is running). The SOAP message
information is displayed through a Web browser by using an applet that opens
a socket connection to the SOAP monitor service. This applet requires a Java
plug-in 1.3 or higher to be installed in your browser. If you do not have a
correct plug-in, the browser will prompt you to install one. The port used by
the SOAP monitor service to communicate with applets is configurable. Edit
the web.xml file to change the port used by the Axis2 Web application.</p>
<p>The SOAP Monitor module (soapmonitor.mar) is available in the axis2.war
but it is not engaged by default. The SOAP Monitor is NOT enabled by default
for security reasons.</p>
<p>The SOAP Monitor can be engaged by inserting the following in the
axis2.xml file.</p>
<div>
<pre> &lt;module ref=&quot;soapmonitor&quot;/&gt;</pre></div>
<p>In the axis2.xml file, define your phase orders for the 'soapmonitorPhase'
referenced in the module.xml of soapmonitor.mars. Below is an example which
should NOT be copied exactly, since the default phases change occasionally.
The important point here is that 'soapmonitorPhase' should be placed under
the 'user can add his own phases to this area' comment in the 'inflow',
'outflow', 'INfaultflow', and 'Outfaultflow' sections.</p>
<div>
<pre> &lt;phaseOrder type=&quot;inflow&quot;&gt;
&lt;!--System pre defined phases--&gt;
&lt;phase name=&quot;TransportIn&quot;/&gt;
&lt;phase name=&quot;PreDispatch&quot;/&gt;
&lt;phase name=&quot;Dispatch&quot; class=&quot;org.apache.axis2.engine.DispatchPhase&quot;&gt;
&lt;handler name=&quot;AddressingBasedDispatcher&quot;
class=&quot;org.apache.axis2.dispatchers.AddressingBasedDispatcher&quot;&gt;
&lt;order phase=&quot;Dispatch&quot;/&gt;
&lt;/handler&gt;
&lt;handler name=&quot;RequestURIBasedDispatcher&quot;
class=&quot;org.apache.axis2.dispatchers.RequestURIBasedDispatcher&quot;&gt;
&lt;order phase=&quot;Dispatch&quot;/&gt;
&lt;/handler&gt;
&lt;handler name=&quot;SOAPActionBasedDispatcher&quot;
class=&quot;org.apache.axis2.dispatchers.SOAPActionBasedDispatcher&quot;&gt;
&lt;order phase=&quot;Dispatch&quot;/&gt;
&lt;/handler&gt;
&lt;handler name=&quot;SOAPMessageBodyBasedDispatcher&quot;
class=&quot;org.apache.axis2.dispatchers.SOAPMessageBodyBasedDispatcher&quot;&gt;
&lt;order phase=&quot;Dispatch&quot;/&gt;
&lt;/handler&gt;
&lt;handler name=&quot;InstanceDispatcher&quot;
class=&quot;org.apache.axis2.engine.InstanceDispatcher&quot;&gt;
&lt;order phase=&quot;PostDispatch&quot;/&gt;
&lt;/handler&gt;
&lt;/phase&gt;
&lt;!--System pre defined phases--&gt;
&lt;!--After Postdispatch phase module author or or service author can add any phase he want--&gt;
&lt;phase name=&quot;userphase1&quot;/&gt;
&lt;phase name=&quot;soapmonitorPhase&quot;/&gt;
&lt;/phaseOrder&gt;
&lt;phaseOrder type=&quot;outflow&quot;&gt;
&lt;!--user can add his own phases to this area--&gt;
&lt;phase name=&quot;userphase1&quot;/&gt;
&lt;phase name=&quot;soapmonitorPhase&quot;/&gt;
&lt;!--system predefined phase--&gt;
&lt;!--these phase will run irrespective of the service--&gt;
&lt;phase name=&quot;PolicyDetermination&quot;/&gt;
&lt;phase name=&quot;MessageOut&quot;/&gt;
&lt;/phaseOrder&gt;
&lt;phaseOrder type=&quot;INfaultflow&quot;&gt;
&lt;!--user can add his own phases to this area--&gt;
&lt;phase name=&quot;userphase1&quot;/&gt;
&lt;phase name=&quot;soapmonitorPhase&quot;/&gt;
&lt;/phaseOrder&gt;
&lt;phaseOrder type=&quot;Outfaultflow&quot;&gt;
&lt;!--user can add his own phases to this area--&gt;
&lt;phase name=&quot;userphase1&quot;/&gt;
&lt;phase name=&quot;soapmonitorPhase&quot;/&gt;
&lt;phase name=&quot;PolicyDetermination&quot;/&gt;
&lt;phase name=&quot;MessageOut&quot;/&gt;
&lt;/phaseOrder&gt;</pre></div>
<p>To configure the servlet to communicate with the applet, add the following
code to the web.xml (The SOAPMonitorPort is configurable.):</p>
<div>
<pre> &lt;servlet&gt;
&lt;servlet-name&gt;SOAPMonitorService&lt;/servlet-name&gt;
&lt;display-name&gt;SOAPMonitorService&lt;/display-name&gt;
&lt;servlet-class&gt;
org.apache.axis2.soapmonitor.servlet.SOAPMonitorService
&lt;/servlet-class&gt;
&lt;init-param&gt;
&lt;param-name&gt;SOAPMonitorPort&lt;/param-name&gt;
&lt;param-value&gt;5001&lt;/param-value&gt;
&lt;/init-param&gt;
&lt;load-on-startup&gt;1&lt;/load-on-startup&gt;
&lt;/servlet&gt;
&lt;servlet-mapping&gt;
&lt;servlet-name&gt;SOAPMonitorService&lt;/servlet-name&gt;
&lt;url-pattern&gt;/SOAPMonitor&lt;/url-pattern&gt;
&lt;/servlet-mapping&gt;</pre></div>
<p>Finally, the applet classes must be placed into the Web application so that
they can be loaded by the Web browser. You can get the compiled applet
classes from the WEB-INF/lib/axis2-soapmonitor-servlet-1.8.0.jar which is inside
the extracted axis2.war. To extract the content of the file, simply
execute the command, <code>jar -xf axis2-soapmonitor-servlet-1.8.0.jar</code>.
The applet code is in the org.apache.axis2.soapmonitor.applet package and therefore
the 'org' directory created by the unpacking of JAR file should be placed
in &lt;CATALINA_HOME&gt;/webapps/axis2/.</p>
<p>Using a Web browser, go to http[s]://host[:port][/webapp]/SOAPMonitor
(e.g.http://localhost:8080/axis2/SOAPMonitor) substituting the correct values
for your Web application. This will show the SOAP Monitor applet used to view
the service requests and responses. Any requests to services that have been
configured and deployed correctly should show up in the applet.</p>
<p>The SOAPMonitor with attachments currently serializes themselves as base64
characters. It is therefore recommended to use the TCPMon tool to correctly
capture MTOM and SWA messages as an multipart mime where the binary data is
an attachment.</p>
</html>
</div>
</div>
</div>
<hr/>
<footer>
<div class="container-fluid">
<div class="row-fluid">
<p>Copyright &copy;2004&#x2013;2021
<a href="https://www.apache.org/">The Apache Software Foundation</a>.
All rights reserved.</p>
</div>
</div>
</footer>
</body>
</html>