у нас странное поведение на только что загруженном сервере приложений TomEE. Наша ситуация: у нас работают два приложения (назовем его v1 и v2 ), которые предоставляют нам некоторые PDF-файлы с помощью REST API, использующего JasperReports. Когда мы выпустили v1, все работало нормально.
Когда мы обновили некоторый внутренний код и выпустили его как v2, начался хаос ... (Изменения в нашем коде едва не являются источником нашей проблемы, это только расчет изменений).
Наш хаос состоит в том, что когда мы сначала обращаемся к нашему коду в v1, наши Отчеты прекрасно обеспечиваются API v1. Когда мы пытаемся получить наш новый отчет из API v2, мы сталкиваемся с классом, а не Found Exception.
Exception in thread "AsyncFileHandlerWriter-2081853534" java.lang.NoClassDefFoundError: Could not initialize class net.sf.jasperreports.extensions.ExtensionsEnvironment
at net.sf.jasperreports.engine.DefaultJasperReportsContext.getExtensions(DefaultJasperReportsContext.java:277)
at net.sf.jasperreports.engine.util.MessageUtil.getMessageProvider(MessageUtil.java:70)
at net.sf.jasperreports.engine.JRRuntimeException.resolveMessage(JRRuntimeException.java:166)
at net.sf.jasperreports.engine.JRRuntimeException.getMessage(JRRuntimeException.java:147)
at net.sf.jasperreports.engine.JRRuntimeException.getMessage(JRRuntimeException.java:138)
at java.base/java.lang.Throwable.getLocalizedMessage(Throwable.java:396)
at java.base/java.lang.Throwable.toString(Throwable.java:485)
at java.base/java.lang.String.valueOf(String.java:2801)
at java.base/java.lang.StringBuilder.append(StringBuilder.java:135)
at java.base/java.lang.Throwable.printEnclosedStackTrace(Throwable.java:699)
at java.base/java.lang.Throwable.printEnclosedStackTrace(Throwable.java:713)
at java.base/java.lang.Throwable.printStackTrace(Throwable.java:671)
at java.base/java.lang.Throwable.printStackTrace(Throwable.java:725)
at org.apache.juli.OneLineFormatter.format(OneLineFormatter.java:150)
at org.apache.juli.FileHandler.publish(FileHandler.java:294)
at org.apache.juli.AsyncFileHandler.publishInternal(AsyncFileHandler.java:146)
at org.apache.juli.AsyncFileHandler$LogEntry.flush(AsyncFileHandler.java:185)
at org.apache.juli.AsyncFileHandler$LoggerThread.run(AsyncFileHandler.java:161)
Мы уже думали об отсутствующих зависимостях или об отсутствующих библиотеках, но: когда мы сначала обращаемся к API v2, мы получаем ту же ошибку в нашем v1 API.
Таким образом, кажется, что API-приложение, которое вызывается первым, «связывает» JasperStuff и d ie, другие API не могут получить к нему доступ. На самом деле мы закончили с нашими знаниями, и мы надеемся, что сможем получить некоторую помощь здесь.
Небольшая справочная информация: мы используем базовый пакет, который обеспечивает некоторые основные функции, такие как DB-Access и JDNI Resources, CORS Filter и Security Интерфейсы. Я не думаю, что основной пакет (предоставляемый в каждой войне отдельно) вызывает некоторый хаос, но из-за того, что у нас есть, помимо прочего, 2 ресурса JDNI с одним и тем же именем (но в различных приложениях и так в другом контексте), я думаю Мне нужно оставить эту информацию здесь.
Заранее благодарю за помощь.