Вставить 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());

0 ответов

Другие вопросы по тегам