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, чтобы заставить его использовать правильную версию.

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