<!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; Apache Axis2 1.8.0 Release Note</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>
      </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 ">Apache Axis2 1.8.0 Release Note</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 class="active"><a href="#"><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" >
<section>
<h2><a name="Apache_Axis2_1.8.0_Release_Note"></a>Apache Axis2 1.8.0 Release Note</h2>
<ul>

<li>

<p>The minimum required Java version for Axis2 has been changed to Java 8.</p>
</li>
<li>

<p>The Apache Commons HttpClient 3.x based HTTP transport has been removed.</p>
</li>
<li>

<p>The HTTPClient 4.x based transport has been upgraded to use the APIs supported by the latest HTTPClient version.</p>
</li>
<li>

<p>Because of the HTTPClient 4.x changes and also JAX-WS changes in the 1.7.x series, users are strongly encouraged to update their axis2.xml.</p>
</li>
<li>

<p>JSON support now includes Moshi as an alternative to GSON. The JSON documentation now includes a JSON and Spring Boot userguide with a WAR application demonstrating Spring Security with tokens. Many bug fixes in general. Any future growth of Axis2 depends on how well the community responds to the increasing focus on JSON.</p>
</li>
<li>

<p>Source control is now via Git and GitHub: <a class="externalLink" href="https://github.com/apache/axis-axis2-java-core">https://github.com/apache/axis-axis2-java-core</a></p>
</li>
<li>

<p>Logging is now via Apache Log4j 2 instead of 1.x. A large focus this release has been on modernizing dependencies. Github Dependabot is handling this now automatically.</p>
</li>
<li>

<p>As explained in the Spring userguide, Spring inside the AAR is no longer supported. The rest of the Spring support is unchanged.</p>
</li>
<li>

<p>To improve dependency management, the data binding JARs have been split to separate the code required at build time from the code required at runtime:</p>
<ul>

<li><code>axis2-jibx</code> has been split into <code>axis2-jibx</code> and <code>axis2-jibx-codegen</code>.</li>
<li><code>axis2-xmlbeans</code> has been split into <code>axis2-xmlbeans</code> and <code>axis2-xmlbeans-codegen</code>.</li>
<li><code>axis2-jaxbri</code> has been renamed to <code>axis2-jaxbri</code> (The JAXB-RI data binding doesn&#x2019;t require any additional classes at runtime).</li>
<li>There are no changes for ADB because the code was already split in previous Axis2 versions.</li>
</ul>
</li>
</ul>
</section><section>
<h2><a name="Bug"></a>        Bug
</h2>

<ul>

<li>[<a class="externalLink" href="https://issues.apache.org/jira/browse/AXIS2-4021">AXIS2-4021</a>] -         AbstractHTTPSender: changes to the isAllowRetry flag have no effect
</li>

<li>[<a class="externalLink" href="https://issues.apache.org/jira/browse/AXIS2-4602">AXIS2-4602</a>] -         JAX-WS MTOM issue
</li>

<li>[<a class="externalLink" href="https://issues.apache.org/jira/browse/AXIS2-5052">AXIS2-5052</a>] -         Unable to send compressed message!!
</li>

<li>[<a class="externalLink" href="https://issues.apache.org/jira/browse/AXIS2-5301">AXIS2-5301</a>] -         Axis2 MTOM client outof memory error when downloading file from service
</li>

<li>[<a class="externalLink" href="https://issues.apache.org/jira/browse/AXIS2-5694">AXIS2-5694</a>] -         axis2 reading DataHandler in client ws causing: DataHandler.getorg.apache.axiom.om.OMException: java.io.IOException: Attempted read on closed stream.
</li>

<li>[<a class="externalLink" href="https://issues.apache.org/jira/browse/AXIS2-5748">AXIS2-5748</a>] -         axis2-metadata: Compilation failure: unmappable character for encoding UTF-8
</li>

<li>[<a class="externalLink" href="https://issues.apache.org/jira/browse/AXIS2-5761">AXIS2-5761</a>] -         Request for removal of dependency of commons-httpclient 3.1 on Apache Axis2 
</li>

<li>[<a class="externalLink" href="https://issues.apache.org/jira/browse/AXIS2-5796">AXIS2-5796</a>] -         java.lang.NoClassDefFoundError AFTER successful build
</li>

<li>[<a class="externalLink" href="https://issues.apache.org/jira/browse/AXIS2-5827">AXIS2-5827</a>] -         axis2-wsdl2code-maven-plugin shouldn't use Log4j
</li>

<li>[<a class="externalLink" href="https://issues.apache.org/jira/browse/AXIS2-5856">AXIS2-5856</a>] -         Wrong null checker
</li>

<li>[<a class="externalLink" href="https://issues.apache.org/jira/browse/AXIS2-5893">AXIS2-5893</a>] -         test.wsdl not found in ServiceClientTest::testWSDLWithImportsFromZIP
</li>

<li>[<a class="externalLink" href="https://issues.apache.org/jira/browse/AXIS2-5919">AXIS2-5919</a>] -         WSDL2Java not working properly when using jaxbri and WSDL with faults
</li>

<li>[<a class="externalLink" href="https://issues.apache.org/jira/browse/AXIS2-5952">AXIS2-5952</a>] -         File.mkdir() may fail and cause crash.
</li>

<li>[<a class="externalLink" href="https://issues.apache.org/jira/browse/AXIS2-5966">AXIS2-5966</a>] -         Axis2 1.8.0-SNAPSHOT fix did not work for JDK 11
</li>
</ul>
</section><section>
<h2><a name="New_Feature"></a>        New Feature
</h2>

<ul>

<li>[<a class="externalLink" href="https://issues.apache.org/jira/browse/AXIS2-5994">AXIS2-5994</a>] -         Update woodstox-core-asl to woodstox-core
</li>
</ul>
</section><section>
<h2><a name="Improvement"></a>        Improvement
</h2>

<ul>

<li>[<a class="externalLink" href="https://issues.apache.org/jira/browse/AXIS2-5661">AXIS2-5661</a>] -         Axis2 1.6.2 @ Websphere 8.5 emits NumberFormatException intermittently.
</li>

<li>[<a class="externalLink" href="https://issues.apache.org/jira/browse/AXIS2-5785">AXIS2-5785</a>] -         Submit 'axis2-xsd2java-maven-plugin' for consideration
</li>

<li>[<a class="externalLink" href="https://issues.apache.org/jira/browse/AXIS2-5884">AXIS2-5884</a>] -         Change parameter &quot;Description&quot; to lower-case for service.xml.
</li>

<li>[<a class="externalLink" href="https://issues.apache.org/jira/browse/AXIS2-5993">AXIS2-5993</a>] -         Upgrade logging to log4j v2.x
</li>
</ul>
</section><section>
<h2><a name="Test"></a>        Test
</h2>

<ul>

<li>[<a class="externalLink" href="https://issues.apache.org/jira/browse/AXIS2-5895">AXIS2-5895</a>] -         JAXWSCodeGenerationEngine extension is incomplete
</li>
</ul></section>
        </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>