
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<!--

    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.
-->
<html>
  <head>

<link type="text/css" rel="stylesheet" href="/resources/site.css">
<script src='/resources/space.js'></script>

<meta http-equiv="Content-type" content="text/html;charset=UTF-8">
<meta name="keywords" content="business integration, EAI, SOA, Service Oriented Architecture, web services, SOAP, JBI, JMS, WSDL, XML, EDI, Electronic Data Interchange, standards support, integration standards, application integration, middleware, software, solutions, services, CXF, open source">
<meta name="description" content="Apache CXF, Services Framework - 2.1 Migration Guide">




    <title>
Apache CXF -- 2.1 Migration Guide
    </title>
  </head>
<body onload="init()">


<table width="100%" cellpadding="0" cellspacing="0">
  <tr>
    <td id="cell-0-0" colspan="2">&nbsp;</td>
    <td id="cell-0-1">&nbsp;</td>
    <td id="cell-0-2" colspan="2">&nbsp;</td>
  </tr>
  <tr>
    <td id="cell-1-0">&nbsp;</td>
    <td id="cell-1-1">&nbsp;</td>
    <td id="cell-1-2">
      <!-- Banner -->
<div class="banner" id="banner"><div><table border="0" cellpadding="0" cellspacing="0" width="100%"><tr><td align="left" colspan="1" nowrap>
<a shape="rect" href="http://cxf.apache.org/" title="Apache CXF"><span style="font-weight: bold; font-size: 170%; color: white">Apache CXF</span></a>
</td><td align="right" colspan="1" nowrap>
<a shape="rect" href="http://www.apache.org/" title="The Apache Sofware Foundation"><img border="0" alt="ASF Logo" src="http://cxf.apache.org/images/asf-logo.png"></a>
</td></tr></table></div></div>
      <!-- Banner -->
      <div id="top-menu">
        <table border="0" cellpadding="1" cellspacing="0" width="100%">
          <tr>
            <td>
              <div align="left">
                <!-- Breadcrumbs -->
<a href="index.html">Index</a>&nbsp;&gt;&nbsp;<a href="how-tos.html">How-Tos</a>&nbsp;&gt;&nbsp;<a href="migration-guides.html">Migration Guides</a>&nbsp;&gt;&nbsp;<a href="21-migration-guide.html">2.1 Migration Guide</a>
                <!-- Breadcrumbs -->
              </div>
            </td>
            <td>
              <div align="right">
                <!-- Quicklinks -->
<div id="quicklinks"><p><a shape="rect" href="http://cxf.apache.org/download.html">Download</a> | <a shape="rect" href="http://cxf.apache.org/docs/index.html">Documentation</a></p></div>
                <!-- Quicklinks -->
              </div>
            </td>
          </tr>
        </table>
      </div>
    </td>
    <td id="cell-1-3">&nbsp;</td>
    <td id="cell-1-4">&nbsp;</td>
  </tr>
  <tr>
    <td id="cell-2-0" colspan="2">&nbsp;</td>
    <td id="cell-2-1">
      <table>
        <tr valign="top">
          <td height="100%">
            <div id="wrapper-menu-page-right">
              <div id="wrapper-menu-page-top">
                <div id="wrapper-menu-page-bottom">
                  <div id="menu-page">
                    <!-- NavigationBar -->
<div id="navigation"><ul class="alternate"><li><a shape="rect" href="overview.html">Overview</a></li><li><a shape="rect" href="how-tos.html">How-Tos</a></li><li><a shape="rect" href="frontends.html">Frontends</a></li><li><a shape="rect" href="databindings.html">DataBindings</a></li><li><a shape="rect" href="transports.html">Transports</a></li><li><a shape="rect" href="configuration.html">Configuration</a></li><li><a shape="rect" href="debugging-and-logging.html">Debugging and Logging</a></li><li><a shape="rect" href="tools.html">Tools</a></li><li><a shape="rect" href="restful-services.html">RESTful Services</a></li><li><a shape="rect" href="wsdl-bindings.html">WSDL Bindings</a></li><li><a shape="rect" href="service-routing.html">Service Routing</a></li><li><a shape="rect" href="dynamic-languages.html">Dynamic Languages</a></li><li><a shape="rect" href="ws-support.html">WS-* Support</a></li><li><a shape="rect" href="advanced-integration.html">Advanced Integration</a></li><li><a shape="rect" href="deployment.html">Deployment</a></li><li><a shape="rect" href="schemas-and-namespaces.html">Use of Schemas and Namespaces</a></li></ul><hr><ul class="alternate"><li><p>Search</p></li></ul><form enctype="application/x-www-form-urlencoded" method="get" id="cse-search-box" action="http://www.google.com/cse">
  <div>
    <input type="hidden" name="cx" value="002890367768291051730:o99qiwa09y4">
    <input type="hidden" name="ie" value="UTF-8">
    <input type="text" name="q" size="21">
    <input type="submit" name="sa" value="Search">
  </div>
</form>
<script type="text/javascript" src="http://www.google.com/cse/brand?form=cse-search-box&amp;lang=en"></script><hr><ul class="alternate"><li><a shape="rect" href="http://cxf.apache.org/javadoc/latest/">API 3.2.x (Javadoc)</a></li><li><a shape="rect" href="http://cxf.apache.org/javadoc/latest-3.1.x/">API 3.1.x (Javadoc)</a></li><li><a shape="rect" href="http://cxf.apache.org/">CXF Website</a></li></ul><p>&#160;</p><p><a shape="rect" class="external-link" href="http://www.apache.org/events/current-event.html"><span class="confluence-embedded-file-wrapper"><img class="confluence-embedded-image confluence-external-resource" src="http://www.apache.org/events/current-event-125x125.png" data-image-src="http://www.apache.org/events/current-event-125x125.png"></span></a></p></div>
                    <!-- NavigationBar -->
                  </div>
              </div>
            </div>
          </div>
         </td>
         <td height="100%">
           <!-- Content -->
           <div class="wiki-content">
<div id="ConfluenceContent"><p>2.1, being based on newer JAX-WS and JAXB standards and introducing new dependencies could cause some issues to make a migration from 2.0.x to 2.1 more than a "drop in" replacement.   This page documents some of those issues.</p>


<h3 id="id-2.1MigrationGuide-Codegenerationchanges">Code generation changes</h3>
<h4 id="id-2.1MigrationGuide-WS-Addressingtypes">WS-Addressing types</h4>
<p>JAX-WS 2.1 supports the WS-Addressing stuff right in the API's.   Thus, WSDL's that take/return the EnpointReferenceType will now generate the JAX-WS 2.1 EndpointReference instead of the CXF proprietary type that was generated in CXF 2.0.x.   There is a flag (-noAddressBinding) to wsdl2java to disable the new type mapping, but the generated code is then not jaxws compliant.</p>

<h4 id="id-2.1MigrationGuide-JAXB2.1annotations">JAXB 2.1 annotations</h4>
<p>The generated code now adds some JAXB 2.1 specific annotations like @XmlSeeAlso.  Thus, the code will not work with previous versions of CXF/JAX-WS.</p>

<h4 id="id-2.1MigrationGuide-java2wsdltoolisgone">java2wsdl tool is gone</h4>
<p>The java2wsdl tool was replaced with the java2ws tool which provides much more flexibility.   Add the -wsdl flag to java2ws if you just need the wsdl.</p>

<h4 id="id-2.1MigrationGuide-java2wsdlgoalincxf-codegen-pluginisalsogone">java2wsdl goal in cxf-codegen-plugin is also gone</h4>
<p>There is a new plugin that uses the java2ws tool now.   See:
<a shape="rect" href="http://cxf.apache.org/docs/maven-integration-and-plugin.html">http://cxf.apache.org/docs/maven-integration-and-plugin.html</a></p>


<h3 id="id-2.1MigrationGuide-Runtimechanges">Runtime changes</h3>
<h4 id="id-2.1MigrationGuide-ASMjar">ASM jar</h4>
<p>The JAX-WS frontend now "requires" asm 2.x or 3.x to be able to process some of the JAXB annotations on the SEI interface.   If you don't use those annotations on the SEI, or if you have generated wrapper classes (either via wsdl2java or java2ws with -wrapperbean flag), you can remove the asm jar.   If you leave asm jar, there can be conflicts with other apps that use asm.   The predominant one is Hibernate.   The "workaround" for Hibernate is to remove the asm 1.x jar they use and replace the cglib jar with the cglib-nodeps jar that includes a special internal version of asm that would not conflict with the 2.x/3.x version we need.</p>

<h4 id="id-2.1MigrationGuide-Woodstoxrequirement">Woodstox requirement</h4>
<p>Due to a bug to be fixed in 2.1.1, it looks like wstx-asl jar is required for the application to startup if the spring beans file requires namespace support to parse.</p>

<h4 id="id-2.1MigrationGuide-JDK1.6support">JDK 1.6 support</h4>
<p>2.1 supports JDK 1.6 update 4 and later as update 4 includes the 2.1 versions of the JAX-WS API jar and the 2.1 version of the JAXB api jar and runtime.   To use 2.1 with 1.6 up to update 3, you will need to add the jaxws-api jar and jaxb jars to the jre/lib/endorsed directories.   You don't need to do anything special for JDK 1.5.</p>

<h4 id="id-2.1MigrationGuide-Aegisconfiguration">Aegis configuration</h4>
<p>The configuration for the Aegis runtime has changed.  See <a shape="rect" href="http://cxf.apache.org/docs/aegis-21.html">http://cxf.apache.org/docs/aegis-21.html</a> for descriptions of the changes.</p></div>
           </div>
           <!-- Content -->
         </td>
        </tr>
      </table>
   </td>
   <td id="cell-2-2" colspan="2">&nbsp;</td>
  </tr>
  <tr>
   <td id="cell-3-0">&nbsp;</td>
   <td id="cell-3-1">&nbsp;</td>
   <td id="cell-3-2">
     <div id="footer">
       <!-- Footer -->
       <div id="site-footer">
         <a href="http://cxf.apache.org/privacy-policy.html">Privacy Policy</a> - 
         (<a href="https://cwiki.apache.org/confluence/pages/editpage.action?pageId=84552">edit page</a>) 
	 (<a href="https://cwiki.apache.org/confluence/pages/viewpage.action?pageId=84552&amp;showComments=true&amp;showCommentArea=true#addcomment">add comment</a>)<br>
	Apache CXF, CXF, Apache, the Apache feather logo are trademarks of The Apache Software Foundation.<br>
        All other marks mentioned may be trademarks or registered trademarks of their respective owners.
       </div>
       <!-- Footer -->
     </div>
   </td>
   <td id="cell-3-3">&nbsp;</td>
   <td id="cell-3-4">&nbsp;</td>
  </tr>
  <tr>
    <td id="cell-4-0" colspan="2">&nbsp;</td>
    <td id="cell-4-1">&nbsp;</td>
    <td id="cell-4-2" colspan="2">&nbsp;</td>
  </tr>
</table>

<script type="text/javascript">
var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www.");
document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E"));
</script>
<script type="text/javascript">
try {
var pageTracker = _gat._getTracker("UA-4458903-1");
pageTracker._trackPageview();
} catch(err) {}</script>

</body>
</html>

