java.lang.NoSuchMethodError: org/apache/axiom/om/OMFactory.createOMElement(Lorg/apache/axiom/om/OMDataSource;)Lorg/apache/axiom/om/OMSourcedElement;
Я разработчик в Capgemini, и у меня есть проблема с приложением Java EE, которое я разрабатываю.
Я звоню в веб-сервис с Axis2
в тесте junit в проекте, и это работает. Но когда я вызываю тот же метод в другом проекте, который ссылается на первый (с зависимостями maven), и запускаю свое приложение, у меня возникает следующая ошибка:
java.lang.NoSuchMethodError: org/apache/axiom/om/OMFactory.createOMElement(Lorg/apache/axiom/om/OMDataSource;)Lorg/apache/axiom/om/OMSourcedElement;
У кого-нибудь есть представление о том, что я делаю не так?
Если вам нужна дополнительная информация, спросите меня.
Спасибо
1 ответ
Ошибка означает, что второй проект выполняется с версией библиотеки Axiom, которая старше, чем версия, ожидаемая первым проектом. Для этого есть две возможные причины:
Среда выполнения, в которой вы развертываете второй проект, имеет свою собственную версию Axiom. Это, например, относится к приложению Java EE, развернутому в WebSphere.
Второй проект имеет другую (прямую или косвенную) зависимость от библиотеки Axiom с другой версией в качестве первого проекта, и Maven выбирает эту версию. Вы должны быть в состоянии увидеть это, когда вы выполните
mvn dependency:tree
на втором проекте. Если это так, добавьтеdependencyManagement
раздел POM, чтобы заставить его использовать правильную версию.