You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@ws.apache.org by di...@apache.org on 2005/12/20 17:04:04 UTC

svn commit: r358024 [8/8] - in /webservices/site/trunk/targets/axis2: ./ adb/ images/ images/tools/service/ images/tools/wsdl/ sec-conf/ style/ tools/ tools/idea-guide/

Added: webservices/site/trunk/targets/axis2/transport_howto.html
URL: http://svn.apache.org/viewcvs/webservices/site/trunk/targets/axis2/transport_howto.html?rev=358024&view=auto
==============================================================================
--- webservices/site/trunk/targets/axis2/transport_howto.html (added)
+++ webservices/site/trunk/targets/axis2/transport_howto.html Tue Dec 20 08:02:13 2005
@@ -0,0 +1,175 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html><head><title> - Axis 2.0</title><style type="text/css" media="all">
+          @import url("./style/maven-base.css");
+          
+          @import url("./style/maven-theme.css");</style><link rel="stylesheet" href="./style/print.css" type="text/css" media="print"></link><meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"></meta></head><body class="composite"><div id="banner"><a href="http://www.apache.org/" id="organizationLogo"><img alt="Apache Software Foundation" src="http://www.apache.org/images/asf-logo.gif"></img></a><a href="http://ws.apache.org/axis2/" id="projectLogo"><img alt="Apache Axis 2.0" src="http://ws.apache.org/axis2/images/axis.jpg"></img></a><div class="clear"><hr></hr></div></div><div id="breadcrumbs"><div class="xleft">Last published: 20 December 2005
+                <span class="separator">|</span> Doc for  0.94-dev
+                </div><div class="xright"></div><div class="clear"><hr></hr></div></div><div id="leftColumn"><div id="navcolumn"><div id="menuAxis_2_0"><h5>Axis 2.0</h5><ul><li class="none"><a href="index.html">Home</a></li><li class="expanded"><a href="">Download Axis2</a><ul><li class="none"><a href="download.cgi">Releases</a></li><li class="none"><a href="http://svn.apache.org/viewcvs.cgi/webservices/axis2/trunk/?root=Apache-SVN" class="externalLink" title="External Link">Source Code</a></li></ul></li><li class="expanded"><a href="">Getting Started with Axis2</a><ul><li class="none"><a href="installationguide.html">Installation Guide</a></li><li class="none"><a href="userguide.html">User Guide</a></li><li class="none"><a href="webadminguide.html">Web Administration Guide</a></li></ul></li><li class="expanded"><a href="docs.html">Additional Reference</a><ul><li class="none"><a href="http://wiki.apache.org/ws/FrontPage/Axis2" class="externalLink" title="External Link">Axis2
  Wiki</a></li><li class="none"><a href="Axis2ArchitectureGuide.html">Architecture Guide</a></li><li class="none"><a href="OMTutorial.html">AXIOM Tutorial</a></li><li class="none"><a href="CodegenToolReference.html">Code Generation Tutorial</a></li><li class="none"><a href="rest-ws.html">REST Support</a></li><li class="none"><a href="mtom-guide.html">Handling Binary Data with Axis2</a></li><li class="none"><a href="axis2config.html">Axis2 Configuration Guide</a></li><li class="none"><a href="migration.html">Migrating from Axis 1.x</a></li><li class="none"><a href="api.html">Online Java Docs</a></li><li class="none"><a href="adb/adb-howto.html">ADB How-to</a></li><li class="none"><a href="security-module.html">WS-Security How-to</a></li><li class="none"><a href="otherTutorials.html">Other Tutorials</a></li></ul></li><li class="expanded"><a href="overview.html">Get Invloved</a><ul><li class="none"><a href="svn.html">Checkout the Source</a></li><li class="none"><a href="siteHowT
 o.html">Build the Site</a></li><li class="none"><a href="guidelines.html">Developer Guidelines</a></li><li class="none"><a href="refLib.html">Reference Library</a></li><li class="none"><a href="mail-lists.html">Mailing Lists</a></li><li class="none"><a href="faq.html">FAQ</a></li><li class="none"><a href="thanks.html">Thanks</a></li></ul></li><li class="expanded"><a href="">Project Information</a><ul><li class="none"><a href="mail-lists.html">Mailing Lists</a></li><li class="none"><a href="team-list.html">Project Team</a></li><li class="none"><a href="issue-tracking.html">Issue Tracking</a></li></ul></li></ul></div><div id="legend"><h5>Legend</h5><ul><li class="externalLink">External Link</li><li class="newWindow">Opens in a new window</li></ul></div><a href="http://maven.apache.org/" title="Built by Maven" id="poweredBy"><img alt="Built by Maven" src="./images/logos/maven-button-1.png"></img></a></div></div><div id="bodyColumn"><div class="contentBox"><div class="section"><
 a name="How_to_write_your_own_Axis2_transport"></a><h2>How to write your own Axis2 transport</h2><div class="subsection"><a name="Prologue"></a><h3>Prologue</h3><p>To stop you from reinventing the wheel I will quickly list the transports
+that are already supported in Axis2 with a small description before we get
+started.</p><p></p><ul>
+  <li><b>HTTP</b> - In the HTTP transport, the transport Listener is a
+    Servlet or a Simple HTTP server provided by Axis2. The transport Sender
+    uses sockets to connect and send the SOAP Message. Currently we have the
+    commons-HTTP-client based HTTP Transport sender as the default
+  transport.</li>
+  <li><b>TCP</b> This is the most simple transport, but needs addressing
+    support to be functional.</li>
+  <li><b>SMTP</b> This can work off a single email account or a mailserver.
+    The Mail Transport Receiver is a tread that checks for emails in fixed
+    time intervals.</li>
+</ul><p>To understand the rest of this document you will need some understanding
+of the Architecture of Axis2. Therefor if you are not familiar with the
+Architecture of Axis2 you will have to first read the <a href="Axis2ArchitectureGuide.html">Axis2 Architecture Guide</a> before you
+read any further.</p></div><div class="subsection"><a name="Introduction"></a><h3>Introduction</h3><p>Broadly speaking a transport inside Axis2 can be classified as a way of
+getting a messages that arrive though some channel into the Axis2 engine. The
+core of Axis2 is a transport agnostic one. All data that is transport
+specific is striped out of the incoming message and inserted into the
+MessageContext and on the outgoing message all transport specific information
+like headers are added and sent.</p><p>To write your own transport you will need to primarily write two classes,
+one is the TransportSender and the other is the TransportReceiver. To
+register a transport with Axis2 you will need to put two entries in the
+axis2.xml file. One for the transport receiver and the other for the
+transport sender. We will walk though the process of adding the entries in
+the relevent sections.</p></div><div class="subsection"><a name="Transport_Receiver"></a><h3>Transport Receiver</h3><p>Any message that is comming into Axis2 needs to go though a transport
+receiver. All information about how the message is received at the Axis2
+server from the wire [or by snail mail for that matter:)] is isolated inside
+the transport receiver. It extracts the data that is coming on the wire and
+transforms it into a state that the Axis2 server understands.</p><p>So now that we have some background information about how transports work
+inside Axis2 with out further delay why don't we dive into some coding and
+start building out own transport.</p><p></p><p>To get things stared you will first need to extend from the
+org.apache.Axis2.transport.TransportListener class and write you own
+transport listener. To create an engine to process the MessageContext we need
+a configuration context. The following code fragment will do this. This
+should ideally be only done once for the lifetime of the Transport
+receiver.</p><p>
+    <div class="source"><pre></pre></div>
+  </p>
+    <div class="source"><pre>try {
+        //Create a factory 
+        ConfigurationContextFactory factory = new ConfigurationContextFactory();
+        //Use the factory and an Axis2 repository to create a new Configuration Context
+        configurationContext = factory.buildConfigurationContext(repository_directory);
+} catch (Exception e) {
+        log.info(e.getMessage());
+}
+
+</pre></div>
+  <p>Now we need some kind of a listener to listen to the requests that come
+in. This you will need to implement according to the transport that you are
+trying to build. After a message is received at the receiver you can use the
+following code to process the request and then forward the message context to
+the engine using thing the engine.receive(msgContext) method.</p>
+    <div class="source"><pre><pre>AxisEngine engine = new AxisEngine(configurationContext);
+MessageContext msgContext = null;
+// create and initialize a message context
+try {
+        TransportInDescription transportIn =
+                reg.getAxisConfiguration().getTransportIn(new QName(Constants.TRANSPORT_NAME));
+        TransportOutDescription transportOut =
+                reg.getAxisConfiguration().getTransportOut(new QName(Constants.TRANSPORT_NAME));
+        if (transportIn != null &amp;&amp; transportOut != null) {
+                //create Message Context
+                msgContext = new MessageContext(configurationContext, transportIn, transportOut);
+                msgContext.setServerSide(true);
+                msgContext.setProperty(MailSrvConstants.CONTENT_TYPE, message.getContentType());
+                msgContext.setProperty(MessageContext.CHARACTER_SET_ENCODING, message.getEncoding());
+
+                String soapAction = message.getSOAPActionHeader();
+                msgContext.setWSAAction(soapAction);
+                msgContext.setSoapAction(soapAction);
+
+                // Here we are trying to set the reply to if it is present in the transport information.
+                msgContext.setReplyTo(new EndpointReference(message.getReplyTo());
+
+                //Create the SOAP Message -- This code in from the mail transport and will change depending
+                //on how the data is handled in each transport.
+                ByteArrayInputStream bais = new ByteArrayInputStream(message.getContent().toString().getBytes());
+                XMLStreamReader reader = XMLInputFactory.newInstance().createXMLStreamReader(bais);
+
+                String soapNamespaceURI = "";
+                if(message.getContentType().indexOf(SOAP12Constants.SOAP_12_CONTENT_TYPE) &gt; -1){
+                        soapNamespaceURI = SOAP12Constants.SOAP_ENVELOPE_NAMESPACE_URI;
+                }else if(message.getContentType().indexOf(SOAP11Constants.SOAP_11_CONTENT_TYPE) &gt; -1){
+                        soapNamespaceURI = SOAP11Constants.SOAP_ENVELOPE_NAMESPACE_URI;
+                }
+
+                StAXBuilder builder = new StAXSOAPModelBuilder(reader, soapNamespaceURI);
+
+                SOAPEnvelope envelope = (SOAPEnvelope) builder.getDocumentElement();
+                msgContext.setEnvelope(envelope);
+                if (envelope.getBody().hasFault()) {
+                        engine.receiveFault(msgContext);
+                } else {
+                        engine.receive(msgContext);
+                }
+        } else {
+                throw new AxisFault(Messages.getMessage("unknownTransport",Constants.TRANSPORT_NAME));
+        }
+
+} catch (Exception e) {
+        try {
+                if (msgContext != null) {
+                        MessageContext faultContext = engine.createFaultMessageContext(msgContext, e);
+                        engine.sendFault(faultContext);
+                } else {
+                        log.error(e);
+                }
+        } catch (AxisFault e1) {
+                log.error(e);
+        }
+}</pre>
+</pre></div>
+  <p>Now we have the coding in place and we need to let Axis2 know about our
+new transport receiver. How we do this is by addind an entry into the
+axis2.xml file. If you need to pass any properties for the transport to
+operate it can also be done through the axis2.xml file.</p>
+    <div class="source"><pre><pre>   &lt;transportReceiver name="TRANSPORT_NAME" class="org.apache.Axis2.transport.TRANSPORT_NAME.TRANSPORT_LISTNER_CLASS"&gt;
+        &lt;parameter name="PROPERTY_NAME" locked="false"&gt;PROPERTY_VALUE&lt;/parameter&gt;
+        &lt;parameter name="PROPERTY_NAME_2" locked="false"&gt;PROPERTY_VALUE_2&lt;/parameter&gt;
+  &lt;/transportReceiver&gt;
+  </pre>
+</pre></div>
+  <p>Using a code fragment like
+Utils.getParameterValue(transportOut.getParameter(MailSrvConstants.SMTP_USER))
+we can extract the parameters that we insert into the axis2.xml file.</p><p>So as you can see getting a new transport receiver up and running is a
+task that requires very little effort.</p></div><div class="subsection"><a name="Transport_Sender"></a><h3>Transport Sender</h3><p>Any message that is to be sent out from Axis2 is sent through the
+Transport Sender. The Transport Sender needs to be extended from the
+org.apache.Axis2.transport.AbstractTransportSender class.</p><p>The following bit of code from the abstract transport sender will call the
+Transport Sender that you wrote.</p>
+    <div class="source"><pre><pre>// If an EPR is present then the message is going on a diffrent channel.
+if (epr != null) {
+        out = openTheConnection(epr, msgContext);
+        OutputStream newOut = startSendWithToAddress(msgContext, out);
+        if (newOut != null) {
+                out = newOut;
+        }
+        writeMessage(msgContext, out);
+        finalizeSendWithToAddress(msgContext, out);
+        } else {
+        out = (OutputStream) msgContext.getProperty(MessageContext.TRANSPORT_OUT);
+        if (out != null) {
+                startSendWithOutputStreamFromIncomingConnection(msgContext, out);
+                writeMessage(msgContext, out);
+                finalizeSendWithOutputStreamFromIncomingConnection(msgContext, out);
+        } else {
+                throw new AxisFault(
+                        "Both the TO and Property MessageContext.TRANSPORT_WRITER is Null, No way to send response.");
+        }
+}</pre>
+</pre></div>
+  <p>So depending on whether your transport is using the same channel to send
+the responce or using a different channel you will need to implement a
+sub-set of the methods from the abstract class.</p><p>After implementing the necessary methods you can let Axis2 know about your
+new transport sender by adding an entry to the axis2.xml file like you did
+for the Transport Receiver.</p>
+    <div class="source"><pre><pre>   &lt;transportSender name="TRANSPORT_NAME" class="org.apache.Axis2.transport.TRANSPORT_NAME.TRANSPORT_SENDER_CLASS"&gt;
+        &lt;parameter name="PROPERTY_NAME" locked="false"&gt;PROPERTY_VALUE&lt;/parameter&gt;
+        &lt;parameter name="PROPERTY_NAME_2" locked="false"&gt;PROPERTY_VALUE_2&lt;/parameter&gt;
+  &lt;/transportSender&gt;
+  </pre>
+</pre></div>
+  <p>Have a look at org.apache.Axis2.transport.mail.MailTransportSender for a
+very simple Transport Sender. Also have a look at
+org.apache.Axis2.transport.http.CommonsHTTPTransportSender which is used to
+send HTTP responses.</p><p>Once we have written our transport receiver and our transport sender, and
+inserted the needed entries into the axis2.xml file we are done. It is as
+simple as that. :-)</p></div></div></div></div><div class="clear"><hr></hr></div><div id="footer"><div class="xright">© 2004-2005, Apache Software Foundation</div><div class="clear"><hr></hr></div></div></body></html>
\ No newline at end of file

Modified: webservices/site/trunk/targets/axis2/userguide.html
URL: http://svn.apache.org/viewcvs/webservices/site/trunk/targets/axis2/userguide.html?rev=358024&r1=358023&r2=358024&view=diff
==============================================================================
--- webservices/site/trunk/targets/axis2/userguide.html (original)
+++ webservices/site/trunk/targets/axis2/userguide.html Tue Dec 20 08:02:13 2005
@@ -1,9 +1,9 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html><head><title>Axis 2.0 - Axis 2.0 User's Guide</title><style type="text/css" media="all">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html><head><title>Axis 2.0 User's Guide - Axis 2.0</title><style type="text/css" media="all">
           @import url("./style/maven-base.css");
           
-			    @import url("./style/maven-theme.css");</style><link rel="stylesheet" href="./style/print.css" type="text/css" media="print"></link><meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"></meta></head><body class="composite"><div id="banner"><a href="http://www.apache.org/" id="organizationLogo"><img alt="Apache Software Foundation" src="http://www.apache.org/images/asf-logo.gif"></img></a><a href="http://ws.apache.org/axis2/" id="projectLogo"><img alt="Apache Axis 2.0" src="http://ws.apache.org/axis2/images/axis.jpg"></img></a><div class="clear"><hr></hr></div></div><div id="breadcrumbs"><div class="xleft">
-                	Last published: 02 December 2005
-                  | Doc for 0.93</div><div class="xright"></div><div class="clear"><hr></hr></div></div><div id="leftColumn"><div id="navcolumn"><div id="menuAxis_2_0"><h5>Axis 2.0</h5><ul><li class="none"><a href="index.html">Home</a></li><li class="expanded"><a href="">Download Axis2</a><ul><li class="none"><a href="download.cgi">Releases</a></li><li class="none"><a href="http://svn.apache.org/viewcvs.cgi/webservices/axis2/trunk/?root=Apache-SVN" class="externalLink" title="External Link">Source Code</a></li></ul></li><li class="expanded"><a href="">Getting Started with Axis2</a><ul><li class="none"><a href="installationguide.html">Installation Guide</a></li><li class="none"><a href="userguide.html">User Guide</a></li><li class="none"><a href="webadminguide.html">Web Administration Guide</a></li></ul></li><li class="expanded"><a href="docs.html">Additional Reference</a><ul><li class="none"><a href="http://wiki.apache.org/ws/FrontPage/Axis2" class="externalLink" title="Exte
 rnal Link">Axis2 Wiki</a></li><li class="none"><a href="Axis2ArchitectureGuide.html">Architecture Guide</a></li><li class="none"><a href="OMTutorial.html">AXIOM Tutorial</a></li><li class="none"><a href="CodegenToolReference.html">Code Generation Tutorial</a></li><li class="none"><a href="rest-ws.html">REST Support</a></li><li class="none"><a href="mtom-guide.html">Handling Binary Data with Axis2</a></li><li class="none"><a href="axis2config.html">Axis2 Configuration Guide</a></li><li class="none"><a href="migration.html">Migrating from Axis 1.x</a></li><li class="none"><a href="api.html">Online Java Docs</a></li><li class="none"><a href="adb/adb-howto.html">ADB How-to</a></li><li class="none"><a href="security-module.html">WS-Security How-to</a></li><li class="none"><a href="otherTutorials.html">Other Tutorials</a></li></ul></li><li class="expanded"><a href="overview.html">Get Invloved</a><ul><li class="none"><a href="svn.html">Checkout the Source</a></li><li class="none"><
 a href="siteHowTo.html">Build the Site</a></li><li class="none"><a href="guidelines.html">Developer Guidelines</a></li><li class="none"><a href="refLib.html">Reference Library</a></li><li class="none"><a href="mail-lists.html">Mailing Lists</a></li><li class="none"><a href="faq.html">FAQ</a></li></ul></li><li class="expanded"><a href="">Project Information</a><ul><li class="none"><a href="mail-lists.html">Mailing Lists</a></li><li class="none"><a href="team-list.html">Project Team</a></li><li class="none"><a href="issue-tracking.html">Issue Tracking</a></li></ul></li></ul></div><a href="http://maven.apache.org/" title="Built by Maven" id="poweredBy"><img alt="Built by Maven" src="./images/logos/maven-button-1.png"></img></a></div></div><div id="bodyColumn"><div class="contentBox"><div class="section"><a name="Axis_2_0_User_s_Guide"></a><h2>Axis 2.0 User's Guide</h2><div class="subsection"><a name="Contents"></a><h3>Contents</h3><ul>
+          @import url("./style/maven-theme.css");</style><link rel="stylesheet" href="./style/print.css" type="text/css" media="print"></link><meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"></meta></head><body class="composite"><div id="banner"><a href="http://www.apache.org/" id="organizationLogo"><img alt="Apache Software Foundation" src="http://www.apache.org/images/asf-logo.gif"></img></a><a href="http://ws.apache.org/axis2/" id="projectLogo"><img alt="Apache Axis 2.0" src="http://ws.apache.org/axis2/images/axis.jpg"></img></a><div class="clear"><hr></hr></div></div><div id="breadcrumbs"><div class="xleft">Last published: 20 December 2005
+                <span class="separator">|</span> Doc for  0.94-dev
+                </div><div class="xright"></div><div class="clear"><hr></hr></div></div><div id="leftColumn"><div id="navcolumn"><div id="menuAxis_2_0"><h5>Axis 2.0</h5><ul><li class="none"><a href="index.html">Home</a></li><li class="expanded"><a href="">Download Axis2</a><ul><li class="none"><a href="download.cgi">Releases</a></li><li class="none"><a href="http://svn.apache.org/viewcvs.cgi/webservices/axis2/trunk/?root=Apache-SVN" class="externalLink" title="External Link">Source Code</a></li></ul></li><li class="expanded"><a href="">Getting Started with Axis2</a><ul><li class="none"><a href="installationguide.html">Installation Guide</a></li><li class="none"><a href="userguide.html">User Guide</a></li><li class="none"><a href="webadminguide.html">Web Administration Guide</a></li></ul></li><li class="expanded"><a href="docs.html">Additional Reference</a><ul><li class="none"><a href="http://wiki.apache.org/ws/FrontPage/Axis2" class="externalLink" title="External Link">Axis2
  Wiki</a></li><li class="none"><a href="Axis2ArchitectureGuide.html">Architecture Guide</a></li><li class="none"><a href="OMTutorial.html">AXIOM Tutorial</a></li><li class="none"><a href="CodegenToolReference.html">Code Generation Tutorial</a></li><li class="none"><a href="rest-ws.html">REST Support</a></li><li class="none"><a href="mtom-guide.html">Handling Binary Data with Axis2</a></li><li class="none"><a href="axis2config.html">Axis2 Configuration Guide</a></li><li class="none"><a href="migration.html">Migrating from Axis 1.x</a></li><li class="none"><a href="api.html">Online Java Docs</a></li><li class="none"><a href="adb/adb-howto.html">ADB How-to</a></li><li class="none"><a href="security-module.html">WS-Security How-to</a></li><li class="none"><a href="otherTutorials.html">Other Tutorials</a></li></ul></li><li class="expanded"><a href="overview.html">Get Invloved</a><ul><li class="none"><a href="svn.html">Checkout the Source</a></li><li class="none"><a href="siteHowT
 o.html">Build the Site</a></li><li class="none"><a href="guidelines.html">Developer Guidelines</a></li><li class="none"><a href="refLib.html">Reference Library</a></li><li class="none"><a href="mail-lists.html">Mailing Lists</a></li><li class="none"><a href="faq.html">FAQ</a></li><li class="none"><a href="thanks.html">Thanks</a></li></ul></li><li class="expanded"><a href="">Project Information</a><ul><li class="none"><a href="mail-lists.html">Mailing Lists</a></li><li class="none"><a href="team-list.html">Project Team</a></li><li class="none"><a href="issue-tracking.html">Issue Tracking</a></li></ul></li></ul></div><div id="legend"><h5>Legend</h5><ul><li class="externalLink">External Link</li><li class="newWindow">Opens in a new window</li></ul></div><a href="http://maven.apache.org/" title="Built by Maven" id="poweredBy"><img alt="Built by Maven" src="./images/logos/maven-button-1.png"></img></a></div></div><div id="bodyColumn"><div class="contentBox"><div class="section"><
 a name="Axis_2_0_User_s_Guide"></a><h2>Axis 2.0 User's Guide</h2><div class="subsection"><a name="Contents"></a><h3>Contents</h3><ul>
   <li><p><a href="#Introduction">Introduction</a></p>
   </li>
   <li><p><a href="#What_is_Axis_2_0__">What is Axis 2.0 ?</a></p>
@@ -472,31 +472,53 @@
 operation completes). A possible solution would be to use two separate
 transport connections for request and response. The asynchronous behavior
 that we gain using can be called, <b>Transport Level Asynchrony</b>.</p><p>By combining the two we can obtain four different invocation patterns for
-web services as shown in the following table.</p><p><a name="table1"></a><table class="bodyTable"><tbody>
-    <tr class="a"><td width="33%" height="19"><p>API (Blocking/Non-Blocking)</p>
-      </td><td width="33%"><p> Dual Transports (Yes/No)</p>
-      </td><td width="33%"><p>Description</p>
-      </td></tr>
-    <tr class="b"><td width="33%" height="19"><p>Blocking</p>
-      </td><td width="33%"><p>No</p>
-      </td><td width="33%"><p>Simplest and the familiar invocation pattern</p>
-      </td></tr>
-    <tr class="a"><td width="33%" height="19"><p>Non-Blocking</p>
-      </td><td width="33%"><p>No</p>
-      </td><td width="33%"><p>Using callbacks or polling</p>
-      </td></tr>
-    <tr class="b"><td width="33%" height="19"><p>Blocking</p>
-      </td><td width="33%"><p>Yes</p>
-      </td><td width="33%"><p>This is useful when the service operation is IN-OUT
+web services as shown in the following table.</p><p><a name="table1"></a><table class="bodyTable">
+  <tbody>
+    <tr class="a">
+      <td width="33%" height="19"><p>API (Blocking/Non-Blocking)</p>
+      </td>
+      <td width="33%"><p> Dual Transports (Yes/No)</p>
+      </td>
+      <td width="33%"><p>Description</p>
+      </td>
+    </tr>
+    <tr class="b">
+      <td width="33%" height="19"><p>Blocking</p>
+      </td>
+      <td width="33%"><p>No</p>
+      </td>
+      <td width="33%"><p>Simplest and the familiar invocation pattern</p>
+      </td>
+    </tr>
+    <tr class="a">
+      <td width="33%" height="19"><p>Non-Blocking</p>
+      </td>
+      <td width="33%"><p>No</p>
+      </td>
+      <td width="33%"><p>Using callbacks or polling</p>
+      </td>
+    </tr>
+    <tr class="b">
+      <td width="33%" height="19"><p>Blocking</p>
+      </td>
+      <td width="33%"><p>Yes</p>
+      </td>
+      <td width="33%"><p>This is useful when the service operation is IN-OUT
         in nature but the transport used is One-Way (e.g. SMTP)</p>
-      </td></tr>
-    <tr class="a"><td width="33%" height="19"><p>Non-Blocking</p>
-      </td><td width="33%"><p>Yes</p>
-      </td><td width="33%"><p>This is can be used to gain the maximum asynchronous
+      </td>
+    </tr>
+    <tr class="a">
+      <td width="33%" height="19"><p>Non-Blocking</p>
+      </td>
+      <td width="33%"><p>Yes</p>
+      </td>
+      <td width="33%"><p>This is can be used to gain the maximum asynchronous
         behavior. No blocking in the API level and also in the transport
         level</p>
-      </td></tr>
-  </tbody></table></p><p>Axis2 provides the user with all these possibilities to invoke Web
+      </td>
+    </tr>
+  </tbody>
+</table></p><p>Axis2 provides the user with all these possibilities to invoke Web
 Services. In addition Axis2 provides a data binding support making the life
 easy for developers writing Web Service client applications. In this user
 guide we will first see how we can write Web Service clients using the

Modified: webservices/site/trunk/targets/axis2/webadminguide.html
URL: http://svn.apache.org/viewcvs/webservices/site/trunk/targets/axis2/webadminguide.html?rev=358024&r1=358023&r2=358024&view=diff
==============================================================================
--- webservices/site/trunk/targets/axis2/webadminguide.html (original)
+++ webservices/site/trunk/targets/axis2/webadminguide.html Tue Dec 20 08:02:13 2005
@@ -1,72 +1,92 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html><head><title>Axis 2.0 - Axis2 administartion guide</title><style type="text/css" media="all">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html><head><title>Axis2 administartion guide - Axis 2.0</title><style type="text/css" media="all">
           @import url("./style/maven-base.css");
           
-			    @import url("./style/maven-theme.css");</style><link rel="stylesheet" href="./style/print.css" type="text/css" media="print"></link><meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"></meta></head><body class="composite"><div id="banner"><a href="http://www.apache.org/" id="organizationLogo"><img alt="Apache Software Foundation" src="http://www.apache.org/images/asf-logo.gif"></img></a><a href="http://ws.apache.org/axis2/" id="projectLogo"><img alt="Apache Axis 2.0" src="http://ws.apache.org/axis2/images/axis.jpg"></img></a><div class="clear"><hr></hr></div></div><div id="breadcrumbs"><div class="xleft">
-                	Last published: 02 December 2005
-                  | Doc for 0.93</div><div class="xright"></div><div class="clear"><hr></hr></div></div><div id="leftColumn"><div id="navcolumn"><div id="menuAxis_2_0"><h5>Axis 2.0</h5><ul><li class="none"><a href="index.html">Home</a></li><li class="expanded"><a href="">Download Axis2</a><ul><li class="none"><a href="download.cgi">Releases</a></li><li class="none"><a href="http://svn.apache.org/viewcvs.cgi/webservices/axis2/trunk/?root=Apache-SVN" class="externalLink" title="External Link">Source Code</a></li></ul></li><li class="expanded"><a href="">Getting Started with Axis2</a><ul><li class="none"><a href="installationguide.html">Installation Guide</a></li><li class="none"><a href="userguide.html">User Guide</a></li><li class="none"><a href="webadminguide.html">Web Administration Guide</a></li></ul></li><li class="expanded"><a href="docs.html">Additional Reference</a><ul><li class="none"><a href="http://wiki.apache.org/ws/FrontPage/Axis2" class="externalLink" title="Exte
 rnal Link">Axis2 Wiki</a></li><li class="none"><a href="Axis2ArchitectureGuide.html">Architecture Guide</a></li><li class="none"><a href="OMTutorial.html">AXIOM Tutorial</a></li><li class="none"><a href="CodegenToolReference.html">Code Generation Tutorial</a></li><li class="none"><a href="rest-ws.html">REST Support</a></li><li class="none"><a href="mtom-guide.html">Handling Binary Data with Axis2</a></li><li class="none"><a href="axis2config.html">Axis2 Configuration Guide</a></li><li class="none"><a href="migration.html">Migrating from Axis 1.x</a></li><li class="none"><a href="api.html">Online Java Docs</a></li><li class="none"><a href="adb/adb-howto.html">ADB How-to</a></li><li class="none"><a href="security-module.html">WS-Security How-to</a></li><li class="none"><a href="otherTutorials.html">Other Tutorials</a></li></ul></li><li class="expanded"><a href="overview.html">Get Invloved</a><ul><li class="none"><a href="svn.html">Checkout the Source</a></li><li class="none"><
 a href="siteHowTo.html">Build the Site</a></li><li class="none"><a href="guidelines.html">Developer Guidelines</a></li><li class="none"><a href="refLib.html">Reference Library</a></li><li class="none"><a href="mail-lists.html">Mailing Lists</a></li><li class="none"><a href="faq.html">FAQ</a></li></ul></li><li class="expanded"><a href="">Project Information</a><ul><li class="none"><a href="mail-lists.html">Mailing Lists</a></li><li class="none"><a href="team-list.html">Project Team</a></li><li class="none"><a href="issue-tracking.html">Issue Tracking</a></li></ul></li></ul></div><a href="http://maven.apache.org/" title="Built by Maven" id="poweredBy"><img alt="Built by Maven" src="./images/logos/maven-button-1.png"></img></a></div></div><div id="bodyColumn"><div class="contentBox"><div class="section"><p></p></div><div class="section"><a name="Introduction"></a><h2>Introduction</h2><p>Axis2 web administration module provides a way to configure axis2
+          @import url("./style/maven-theme.css");</style><link rel="stylesheet" href="./style/print.css" type="text/css" media="print"></link><meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"></meta></head><body class="composite"><div id="banner"><a href="http://www.apache.org/" id="organizationLogo"><img alt="Apache Software Foundation" src="http://www.apache.org/images/asf-logo.gif"></img></a><a href="http://ws.apache.org/axis2/" id="projectLogo"><img alt="Apache Axis 2.0" src="http://ws.apache.org/axis2/images/axis.jpg"></img></a><div class="clear"><hr></hr></div></div><div id="breadcrumbs"><div class="xleft">Last published: 20 December 2005
+                <span class="separator">|</span> Doc for  0.94-dev
+                </div><div class="xright"></div><div class="clear"><hr></hr></div></div><div id="leftColumn"><div id="navcolumn"><div id="menuAxis_2_0"><h5>Axis 2.0</h5><ul><li class="none"><a href="index.html">Home</a></li><li class="expanded"><a href="">Download Axis2</a><ul><li class="none"><a href="download.cgi">Releases</a></li><li class="none"><a href="http://svn.apache.org/viewcvs.cgi/webservices/axis2/trunk/?root=Apache-SVN" class="externalLink" title="External Link">Source Code</a></li></ul></li><li class="expanded"><a href="">Getting Started with Axis2</a><ul><li class="none"><a href="installationguide.html">Installation Guide</a></li><li class="none"><a href="userguide.html">User Guide</a></li><li class="none"><a href="webadminguide.html">Web Administration Guide</a></li></ul></li><li class="expanded"><a href="docs.html">Additional Reference</a><ul><li class="none"><a href="http://wiki.apache.org/ws/FrontPage/Axis2" class="externalLink" title="External Link">Axis2
  Wiki</a></li><li class="none"><a href="Axis2ArchitectureGuide.html">Architecture Guide</a></li><li class="none"><a href="OMTutorial.html">AXIOM Tutorial</a></li><li class="none"><a href="CodegenToolReference.html">Code Generation Tutorial</a></li><li class="none"><a href="rest-ws.html">REST Support</a></li><li class="none"><a href="mtom-guide.html">Handling Binary Data with Axis2</a></li><li class="none"><a href="axis2config.html">Axis2 Configuration Guide</a></li><li class="none"><a href="migration.html">Migrating from Axis 1.x</a></li><li class="none"><a href="api.html">Online Java Docs</a></li><li class="none"><a href="adb/adb-howto.html">ADB How-to</a></li><li class="none"><a href="security-module.html">WS-Security How-to</a></li><li class="none"><a href="otherTutorials.html">Other Tutorials</a></li></ul></li><li class="expanded"><a href="overview.html">Get Invloved</a><ul><li class="none"><a href="svn.html">Checkout the Source</a></li><li class="none"><a href="siteHowT
 o.html">Build the Site</a></li><li class="none"><a href="guidelines.html">Developer Guidelines</a></li><li class="none"><a href="refLib.html">Reference Library</a></li><li class="none"><a href="mail-lists.html">Mailing Lists</a></li><li class="none"><a href="faq.html">FAQ</a></li><li class="none"><a href="thanks.html">Thanks</a></li></ul></li><li class="expanded"><a href="">Project Information</a><ul><li class="none"><a href="mail-lists.html">Mailing Lists</a></li><li class="none"><a href="team-list.html">Project Team</a></li><li class="none"><a href="issue-tracking.html">Issue Tracking</a></li></ul></li></ul></div><div id="legend"><h5>Legend</h5><ul><li class="externalLink">External Link</li><li class="newWindow">Opens in a new window</li></ul></div><a href="http://maven.apache.org/" title="Built by Maven" id="poweredBy"><img alt="Built by Maven" src="./images/logos/maven-button-1.png"></img></a></div></div><div id="bodyColumn"><div class="contentBox"><div class="section"><
 p></p></div><div class="section"><a name="Introduction"></a><h2>Introduction</h2><p>Axis2 Web Administration Module provides a way to configure Axis2
 dynamically. Its 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><p></p><div class="subsection"><a name="Login_into_administration_site"></a><h3>Login into administration site</h3><p>From axis2 index page you can go to administration page by following Axis2
-Administration link, then logging page will appear asking for a user name and
-a password , the default username is 'admin' (without quotes) and default
-password is 'axis2' (without quotes). You can change those two values by
-changing following two parameters in server.xml as required.</p><p align="left"><strong><img src="images/parameters.jpg" alt=""></img></strong></p><p align="left"><strong><img src="images/adminlogin.jpg" alt=""></img></strong></p><p>If the login succeed you will be see as shown below. This is where you can
-view the configuration and the state of the running system and dynamically
-configure it.</p><p align="left"><strong><img src="images/admin.jpg" alt=""></img></strong></p></div></div><div class="section"><a name="Administration_Options"></a><h2>Administration Options</h2><ul>
-  <b>System components</b> <ul>
-    <li><a href="#heading1">List available services</a></li>
-    <li><a href="#avmodules">List available modules</a></li>
-    <li><a href="#globalmodules">List globally engaged modules</a></li>
-    <li><a href="#phases">View available phases</a></li>
+dynamic configuration changes will be lost.</p><div class="subsection"></div><div class="subsection"><a name="Login_into_Administration_Site"></a><h3>Login into Administration Site</h3><p>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 username
+is 'admin' (without quotes) and default password is 'axis2' (without
+quotes).</p><p align="left"><strong><img src="images/adminlogin.jpg" alt=""></img></strong></p><p>You can change the username &amp; password values by changing following
+two parameters in server.xml as required.</p><p align="left"><strong><img src="images/parameters.jpg" alt=""></img></strong></p><p>If the login is succeessful you will see the screenbelow. This is where
+you can view the configuration and the state of the running system and
+dynamically configure it.</p><p align="left"><strong><img src="images/admin.jpg" alt=""></img></strong></p></div></div><div class="section"><a name="Administration_Options"></a><h2>Administration Options</h2><ul>
+  <b>Tools</b>
+  <ul>
+    <li><a href="#upservice">Upload Service</a></li>
   </ul>
-  <br></br>
-  <b>Execution chains</b> <ul>
+  <b>System components</b>
+  <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>
+  <b>Execution chains</b>
+  <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></br>
   <br></br>
-  <b>Other</b> <ul>
-    <li><a href="#engaginmodule">Engage module</a></li>
-  </ul>
-  <br></br>
-  <b>Edit Service</b> <ul>
-    <li><a href="#turnoffservice">Turn off a service</a></li>
+  <b>Services</b>
+  <ul>
+    <li><a href="#turnoffservice">Undeploy service</a></li>
     <li><a href="#editservicepara">Edit service parameters</a></li>
   </ul>
-</ul></div><div class="section"><a name="List_Available_services"></a><h2>List Available services</h2><p>The functionality of the 'List Available Services' option is almost same
-as the functionality of the axis to main page where it displays the list of
-deployed services. But as an additional feature, if there are any modules
-engaged globally, to services or to operations those details will be
-displayed here.</p><p align="left"><strong><img src="images/adminmain.jpg" alt=""></img></strong></p></div><div class="section"><a name="List_Available_modules"></a><h2>List Available modules</h2><p>To view the available modules in the "repository/modules" you just have to
-click the 'Available Modules' then it will show you all the available modules
-in the system and those modules can be engaged dynamically.</p><p align="left"><strong><img src="images/modules.jpg" alt=""></img></strong></p><br></br></div><div class="section"><a name="List_Globally_engaged_modules"></a><h2>List Globally engaged modules</h2><p>From the globally engaged modules you can see the 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. The 'Globally
-Engaged Modules' option lists the above list of modules.</p><br></br></div><div class="section"><a name="View_available_phases"></a><h2>View available phases</h2><p>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 those two levels of phases is that, in the
-case of system predefined phases, the phases will be invoked irrespective of
-the irrespective of the services. When the dispatcher finds the operation
-then user defined phase list will be invoked. It should be noted that the
-module developers and service writers are really required to have a good
-understanding of phases and phase ordering.</p><img src="images/viewphases.jpg" alt=""></img><br></br></div><div class="section"><a name="View_Global_chains"></a><h2>View Global chains</h2><p>The most interesting feature of axis2 web admin module is that it provide
-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, because there is no way to list
-out the handlers in the global chains except this. And if you engage a new
-module the new handlers will be added to the global chains and those will be
-displayed in this page.</p><p align="left"><strong><img src="images/globalchain.jpg" alt=""></img></strong></p><br></br></div><div class="section"><a name="View_operation_specific_chains"></a><h2>View operation specific chains</h2><p>The 'Operation Specific Chains' can be used to view the handlers
-corresponding to a given service in the same order as there in the real
-execution chain.</p><p align="left"><strong><img src="images/serviceHandlers.jpg" alt=""></img></strong></p><br></br></div><div class="section"><a name="Engaging_modules"></a><h2>Engaging modules</h2><p>Modules can be engaged either globally, to a service or to an operation
+  <b>Contexts</b>
+  <ul>
+    <li><a href="#viewhierarchy">View Hierarchy</a></li>
+  </ul>
+</ul></div><div class="section"><a name="Axis2_Web_Application_Home_Page"></a><h2>Axis2 Web Application Home Page</h2><p align="left"><strong><img src="images/clip_image006.jpg" alt=""></img></strong></p></div><div class="section"><a name="Upload_Services"></a><h2>Upload Services</h2><p>You can upload packaged Axis 2 axisService jar 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
+    toupload</li>
+  <li>then click Upload</li>
+</ul><p align="left"><strong><img src="images/clip_image010.jpg" alt=""></img></strong></p></div><div class="section"><a name="Available_Services"></a><h2>Available Services</h2><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 the list of deployed services. But as an additional feature, if
+there are any modules engaged globally to services or operations those
+details will also be displayed here.</p><p align="left"><strong><img src="images/adminmain.jpg" alt=""></img></strong></p></div><div class="section"><a name="Available_Service_Groups"></a><h2>Available Service Groups</h2><p>Service group is a logical collection of set of services and 'Available
+Service Groups' link will list all the available service groups in the system
+. </p><p align="left"><strong><img src="images/servicegroups.jpg" alt=""></img></strong></p></div><div class="section"><a name="Available_Modules"></a><h2>Available Modules</h2><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="left"><strong><img src="images/modules.jpg" alt=""></img></strong></p><br></br></div><div class="section"><a name="Globally_Engaged_Modules"></a><h2>Globally Engaged Modules</h2><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><br></br></div><div class="section"><a name="Available_Phases"></a><h2>Available Phases</h2><p>'Available Phases' link will display all the avalable 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 that module developers and service writers have a good
+understanding of phases and phase ordering.</p><img src="images/viewphases.jpg" alt=""></img><br></br></div><div class="section"><a name="Global_Chains"></a><h2>Global Chains</h2><p>'Global Chains' link will display all the Global Execution Chains. 'The
+most interesting feature of Axis2 Web Administratin 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. And if you engage a new module
+the new handlers will be added to the global chains and displayed on this
+page.</p><p align="left"><strong><img src="images/globalchain.jpg" alt=""></img></strong></p><br></br></div><div class="section"><a name="Operation_Specific_Chains"></a><h2>Operation Specific Chains</h2><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="left"><strong><img src="images/serviceHandlers.jpg" alt=""></img></strong></p><br></br></div><div class="section"><a name="Engaging_Modules"></a><h2>Engaging Modules</h2><p>'Engaging Modules' link allows to engage modules on all services across
+the system</p><p>Modules can be engaged either globally, 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 system predefined or user defined
-phase.</p><p>In there other hand if the module was implemented in such a way that is
-going to be deployed to a service or to an operation then the module canNOT
-be included in any of system predefined phases. So that it can only be
-included in user defined phases.</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="left"><strong><img src="images/moduleengage.jpg" alt=""></img></strong></p><p> </p><br></br></div><div class="section"><a name="Turn_off_a_service"></a><h2>Turn off a service</h2><p>This functionality provide a way to remove unnecessary services from the
-running system, but the removal is transient meaning if you restart the
-system the service will be available.</p><p align="left"><strong><img src="images/removeservice.jpg" alt=""></img></strong></p><br></br></div><div class="section"><a name="Edit_service_parameters"></a><h2>Edit service parameters</h2><p>This functionality provide a way to change parameters in a service or its
-operations, and those changes will be transient too.</p><p align="left"><strong><img src="images/editserviecpara.jpg" alt=""></img></strong></p></div></div></div><div class="clear"><hr></hr></div><div id="footer"><div class="xright">© 2004-2005, Apache Software Foundation</div><div class="clear"><hr></hr></div></div></body></html>
\ No newline at end of file
+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="left"><strong><img src="images/moduleengage.jpg" alt=""></img></strong></p><p> </p></div><div class="section"><a name="Undeploy_Service"></a><h2>Undeploy Service</h2><p>This 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 align="left"><strong><img src="images/removeservice.jpg" alt=""></img></strong></p><br></br></div><div class="section"><a name="Edit_Service_Parameters"></a><h2>Edit Service Parameters</h2><p>This functionality provide 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 align="left"><strong><img src="images/editserviecpara.jpg" alt=""></img></strong></p></div><div class="section"><a name="View_Hierarchy"></a><h2>View Hierarchy</h2><p>By listing current context hierarchy 'View Hierarchy' link provides a
+means to look at the run time system. Thiswill list out all the available
+service group contexts , service contexts , operation context and etc.</p><p></p></div></div></div><div class="clear"><hr></hr></div><div id="footer"><div class="xright">© 2004-2005, Apache Software Foundation</div><div class="clear"><hr></hr></div></div></body></html>
\ No newline at end of file