Replace JasperReport iText 2.1.7 with latest iText 7.0.1
<p>We are using JasperReport 6.1.0 which has a dependency to com.lowagie:itext:jar:2.1.7.js2. It looks like iText 2.1.7 has IP issue, and iText is asking all users to use the latest version which requires a commercial license. So we would like to buy iText license. Now iText latest version is 7.0.1. I tried did below steps to replace JasperReport's iText 2.1.7 with latest iText 7.0.1:</p>

<h1>1. Exclude default itext 2.1.7 dependency in pom.xml</h1>

<pre><code>&lt;dependency&gt;
  &lt;groupId&gt;net.sf.jasperreports&lt;/groupId&gt;
  &lt;artifactId&gt;jasperreports&lt;/artifactId&gt;
  &lt;version&gt;6.1.0&lt;/version&gt;
  &lt;exclusions&gt;
    &lt;exclusion&gt;
      &lt;groupId&gt;com.lowagie&lt;/groupId&gt;
      &lt;artifactId&gt;itext&lt;/artifactId&gt;
    &lt;/exclusion&gt;
    ...
</code></pre>

<h1>2. Add new iText jars in pom.xml</h1>

<pre><code>&lt;dependency&gt;
  &lt;groupId&gt;com.itextpdf&lt;/groupId&gt;
  &lt;artifactId&gt;barcodes&lt;/artifactId&gt;
  &lt;version&gt;7.0.1&lt;/version&gt;
  &lt;!-- barcodes depends on kernel --&gt;
&lt;/dependency&gt;
&lt;dependency&gt;
  &lt;groupId&gt;com.itextpdf&lt;/groupId&gt;
  &lt;artifactId&gt;font-asian&lt;/artifactId&gt;
  &lt;version&gt;7.0.1&lt;/version&gt;
&lt;/dependency&gt;
&lt;dependency&gt;
  &lt;groupId&gt;com.itextpdf&lt;/groupId&gt;
  &lt;artifactId&gt;forms&lt;/artifactId&gt;
  &lt;version&gt;7.0.1&lt;/version&gt;
  &lt;!-- forms depends on kernel and layout --&gt;
&lt;/dependency&gt;
&lt;dependency&gt;
  &lt;groupId&gt;com.itextpdf&lt;/groupId&gt;
  &lt;artifactId&gt;hyph&lt;/artifactId&gt;
  &lt;version&gt;7.0.1&lt;/version&gt;
&lt;/dependency&gt;
&lt;dependency&gt;
  &lt;groupId&gt;com.itextpdf&lt;/groupId&gt;
  &lt;artifactId&gt;io&lt;/artifactId&gt;
  &lt;version&gt;7.0.1&lt;/version&gt;
&lt;/dependency&gt;
&lt;dependency&gt;
  &lt;groupId&gt;com.itextpdf&lt;/groupId&gt;
  &lt;artifactId&gt;kernel&lt;/artifactId&gt;
  &lt;version&gt;7.0.1&lt;/version&gt;
  &lt;!-- kernel depends on io --&gt;
&lt;/dependency&gt;
&lt;dependency&gt;
  &lt;groupId&gt;com.itextpdf&lt;/groupId&gt;
  &lt;artifactId&gt;layout&lt;/artifactId&gt;
  &lt;version&gt;7.0.1&lt;/version&gt;
  &lt;!-- layout depends on kernel --&gt;
&lt;/dependency&gt;
&lt;dependency&gt;
  &lt;groupId&gt;com.itextpdf&lt;/groupId&gt;
  &lt;artifactId&gt;pdfa&lt;/artifactId&gt;
  &lt;version&gt;7.0.1&lt;/version&gt;
  &lt;!-- pdfa depends on kernel --&gt;
&lt;/dependency&gt;
&lt;dependency&gt;
  &lt;groupId&gt;com.itextpdf&lt;/groupId&gt;
  &lt;artifactId&gt;sign&lt;/artifactId&gt;
  &lt;version&gt;7.0.1&lt;/version&gt;
  &lt;!-- sign depends on kernel, layout and forms --&gt;
&lt;/dependency&gt;
</code></pre>

<h1>3. Run mvn and test report function, I got below error:</h1>

<blockquote>
  <p>2016-11-17 14:43:36,520 ERROR [c.i.c.d.DeferredOperationManager] [ Thread-49] Exception on Deferred Operation. Operation UUID: 2a647922-d6d0-450d-9b2d-4d97638ba03f. UI Error key:d9a16093-be20-4278-9f8b-93120c0a2231 -  Error: java.lang.NoClassDefFoundError: com/lowagie/text/SplitCharacter</p>
</blockquote>

<p>It looks like JasperReport is trying to find old iText classes which namespace is "com.lowagie...".
I tried to unzip the new iText 7.0.1 jar, the classes are in package "com.itextpdf...".</p>

<p>How can I make the JasperReport call the new iText jar?</p>