Мы используем JasperReport 6.1.0, которая имеет зависимость от com.lowagie: itext: jar: 2.1.7.js2. Похоже, что iText 2.1.7 имеет IP-проблему, и iText просит всех пользователей использовать последнюю версию, требующую коммерческой лицензии. Поэтому мы хотели бы купить лицензию iText. Теперь последняя версия iText - 7.0.1. Я попытался сделал следующие шаги, чтобы заменить JasperReport в IText 2.1.7 с последними IText 7.0.1:Замените JasperReport iText 2.1.7 на последнюю версию iText 7.0.1
1. Exclude по умолчанию IText 2.1.7 зависимость в pom.xml
<dependency>
<groupId>net.sf.jasperreports</groupId>
<artifactId>jasperreports</artifactId>
<version>6.1.0</version>
<exclusions>
<exclusion>
<groupId>com.lowagie</groupId>
<artifactId>itext</artifactId>
</exclusion>
...
2. Добавить новые банки IText в pom.xml
<dependency>
<groupId>com.itextpdf</groupId>
<artifactId>barcodes</artifactId>
<version>7.0.1</version>
<!-- barcodes depends on kernel -->
</dependency>
<dependency>
<groupId>com.itextpdf</groupId>
<artifactId>font-asian</artifactId>
<version>7.0.1</version>
</dependency>
<dependency>
<groupId>com.itextpdf</groupId>
<artifactId>forms</artifactId>
<version>7.0.1</version>
<!-- forms depends on kernel and layout -->
</dependency>
<dependency>
<groupId>com.itextpdf</groupId>
<artifactId>hyph</artifactId>
<version>7.0.1</version>
</dependency>
<dependency>
<groupId>com.itextpdf</groupId>
<artifactId>io</artifactId>
<version>7.0.1</version>
</dependency>
<dependency>
<groupId>com.itextpdf</groupId>
<artifactId>kernel</artifactId>
<version>7.0.1</version>
<!-- kernel depends on io -->
</dependency>
<dependency>
<groupId>com.itextpdf</groupId>
<artifactId>layout</artifactId>
<version>7.0.1</version>
<!-- layout depends on kernel -->
</dependency>
<dependency>
<groupId>com.itextpdf</groupId>
<artifactId>pdfa</artifactId>
<version>7.0.1</version>
<!-- pdfa depends on kernel -->
</dependency>
<dependency>
<groupId>com.itextpdf</groupId>
<artifactId>sign</artifactId>
<version>7.0.1</version>
<!-- sign depends on kernel, layout and forms -->
</dependency>
3. Выполнить МВН и функция отчет об испытаниях, я получил ниже ошибки:
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
Это выглядит л ike JasperReport пытается найти старые классы iText, пространство имен которых «com.lowagie ...». Я попытался распаковать новую iText 7.0.1 jar, классы в пакете «com.itextpdf ...».
Как я могу заставить JasperReport вызывать новый баннер iText?
* «Как я могу заставить JasperReport вызывать новый баннер iText?» * - *** Переписать классы JasperReport, которые используют iText! *** Серьезно, вы не хотите говорить, что вы просто заменяете зависимость с версией, большая часть которой увеличена на 5 (2.1.7 на 7.0.1) и ожидаете, что все будет готово, не так ли? Изменены не только пакеты классов, API 7.x - это полная переписывание, совместимость нарушена дизайном, чтобы избавиться от многих старых грехов. – mkl
Кто-то задал тот же вопрос на веб-сайте отчетов Jasper: http://community.jaspersoft.com/questions/1035351/itext7-support. Было бы полезно, если бы вы просмотрели эту страницу, чтобы узнать, получает ли она ответ от людей, которые поддерживают отчеты Jasper. –