Вставить tomcat не может загрузить класс DeclareRoles внутри
У меня есть приложение 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());