У меня есть Java-приложение на основе maven.В настоящее время мы пытаемся обновить Tomcat 7 до Tomcat 9.0.14.Мы используем встроенный tomcat (фиктивный сервер) на этапе тестирования интеграции.Проблема заключается в том, что Tomcat 9 не загружает правильный класс DeclareRoles из jar-файла tomcat-annotation, который сам является частью основного jar-файла tomcat-embed.Он загружает DeclareRoles из файла jar com.sun.xml.ws:servlet.Я получаю следующее исключение: -
Caused by: java.lang.NoClassDefFoundError: javax/annotation/security/DeclareRoles
at org.apache.catalina.startup.WebAnnotationSet.loadClassAnnotation(WebAnnotationSet.java:258)
at org.apache.catalina.startup.WebAnnotationSet.loadApplicationListenerAnnotations(WebAnnotationSet.java:88)
Я попытался добавить jar-файл tomcat-annotations в начало зависимости, но безуспешно.Это работает нормально, если я помещаю tomcat-annotation jar в папку jre / lib / ext.Понятно, что проблема с загрузкой правильного файла класса, но как?Мы используем Reflection для запуска встроенного сервера.Так что я не уверен, сможем ли мы это исправить с помощью Maven, похоже, Java должен корректно загружать классы.
Class<?> mockHubServerClazz = this.classLoader.loadClass(MockHubServer.class.getName());