<html>
<head>
  <meta http-equiv="content-type" content="">
  <title>Axis2 1.2 Release</title>
</head>

<body>
<h2>Axis2 1.2 Release</h2>

<div>

<table border="1" cellpadding="1">
  <tbody>
    <tr>
      <th scope="col">Distribution Name</th>
      <th scope="col">Description</th>
      <!--<th scope="col">Items</th>-->
      <th scope="col">Download</th>
    </tr>
    <tr>
      <td><a name="std-bin"></a><strong>Standard Binary
      Distribution</strong></td>
      <td>This is the complete version of Axis2 and will contain samples as
        well. Since WS-Addressing implementation and SOAP Monitor utility
        modules are engaged in to Axis2, by default, this distribution will
        contain addressing.mar and soapmonitor.mar. But the other modules
        that are being developed within Axis2 will not be included here, and
        need to be <a href="../../modules/index.html">downloaded</a>
        separately.</td>
      <td><a href="[preferred]/ws/axis2/1_2/axis2-1.2.zip"
        title="[preferred]/ws/axis2/1_2/axis2-1.2.zip">zip</a> <a
        href="http://www.apache.org/dist/ws/axis2/1_2/axis2-1.2.zip.md5"
        title="http://www.apache.org/dist/ws/axis2/1_2/axis2-1.2.zip.md5">MD5</a>
        <a
        href="http://www.apache.org/dist/ws/axis2/1_2/axis2-1.2.zip.asc"
        title="http://www.apache.org/dist/ws/axis2/1_2/axis2-1.2.zip.asc">PGP</a></td>
    </tr>
    <tr>
      <td><a name="src"></a><strong> Source Distribution</strong></td>
      <td>This will contain the sources of Axis2 standard distribution. One
        can generate a binary distribution from this by typing <span
        class="style1">$maven dist-bin</span> (<a
        href="http://ws.apache.org/axis2/1_2/installationguide.html#env-src">Set
        up Axis2 environment</a> before running this command). Useful for
        advanced users.</td>
      <td><a href="[preferred]/ws/axis2/1_2/axis2-1.2-src.zip"
        title="[preferred]/ws/axis2/1_2/axis2-1.2-src.zip">zip</a> <a
        href="http://www.apache.org/dist/ws/axis2/1_2/axis2-1.2-src.zip.md5"
        title="http://www.apache.org/dist/ws/axis2/1_2/axis2-1.2-src.zip.md5">MD5</a>
        <a
        href="http://www.apache.org/dist/ws/axis2/1_2/axis2-1.2-src.zip.asc"
        title="http://www.apache.org/dist/ws/axis2/1_2/axis2-1.2-src.zip.asc">PGP</a></td>
    </tr>
    <tr>
      <td><a name="war"></a><strong>WAR (Web Archive)
      Distribution</strong></td>
      <td>This will be the web application of Axis2 which can be deployed in
        most of the servlet containers.</td>
      <td><a href="[preferred]/ws/axis2/1_2/axis2.war"
        title="[preferred]/ws/axis2/1_2/axis2.war">zip</a> <a
        href="http://www.apache.org/dist/ws/axis2/1_2/axis2.war.md5"
        title="http://www.apache.org/dist/ws/axis2/1_2/axis2.war.md5">MD5</a>
        <a href="http://www.apache.org/dist/ws/axis2/1_2/axis2.war.asc"
        title="http://www.apache.org/dist/ws/axis2/1_2/axis2.war.asc">PGP</a></td>
    </tr>
    <tr>
      <td><strong>Documents Distribution</strong></td>
      <td>This will contain all the documentation in one package.</td>
      <td><a href="[preferred]/ws/axis2/1_2/axis2-1.2-docs.zip"
        title="[preferred]/ws/axis2/1_2/axis2-1.2-docs.zip">zip</a> <a
        href="http://www.apache.org/dist/ws/axis2/1_2/axis2-1.2-docs.zip.md5"
        title="http://www.apache.org/dist/ws/axis2/1_2/axis2-1.2-docs.zip.md5">MD5</a>
        <a
        href="http://www.apache.org/dist/ws/axis2/1_2/axis2-1.2-docs.zip.asc"
        title="http://www.apache.org/dist/ws/axis2/1_2/axis2-1.2-docs.zip.asc">PGP</a></td>
    </tr>
  </tbody>
</table>
</div>

<div align="left">
<br>


<p>[if-any logo] <a href="[link]"><img align="right" src="[logo]"
border="0"></a>[end] The currently selected mirror is <b>[preferred]</b>.  If
you encounter a problem with this mirror, please select another mirror.  If
all mirrors are failing, there are <i>backup</i> mirrors (at the end of the
mirrors list) that should be available.</p>

<form action="[location]" method="get" id="SelectMirror">
  Other mirrors: 
  <select name="Preferred">[if-any http][for http]
    <option value="[http]"
    selected="selected">[http]</option>[end][end][if-any ftp][for ftp]
    <option value="[ftp]">[ftp]</option>[end][end][if-any backup][for backup]
    <option value="[backup]">[backup] (backup)</option>[end][end]
  </select>
   
  <input type="submit" value="Change"></form>

<p>You may also consult the <a href="http://www.apache.org/mirrors/">complete
list of mirrors</a>.</p>

<p><strong>Note:</strong> when downloading from a mirror please check the <a
href="http://www.apache.org/dev/release-signing#md5">md5sum</a> and verify
the <a href="http://www.apache.org/dev/release-signing#openpgp">OpenPGP</a>
compatible signature from the main Apache site. These can be downloaded by
following the links above. This <a
href="http://www.apache.org/dist/ws/axis2/KEYS">KEYS</a> file contains the
public keys that can be used for verifying signatures. It is recommended that
(when possible)a <a
href="http://www.apache.org/dev/release-signing#web-of-trust">Web of
trust</a> is used to confirm the identity of these keys.</p>
</div>
</body>
</html>
