Вы, кажется, пытаетесь использовать версию 2.1 JAX-RS (Apache CXF), но из-за того, как работает делегирование загрузчика классов, вы получаете API с сервера (WebSphere 8.5.5 включает JAX-RS 1.1). CXFNonSpringJaxrsServlet пытается вызвать метод API JAX-RS 2.1, который не существовал в 1.1, поэтому возникает ошибка.
Решение состоит в том, чтобы изменить загрузку классов так, чтобы классы загружались из ваших jar-файлов вместо серверных. банки. Есть два способа сделать это:
1) Измените настройки загрузчика классов вашего веб-модуля (ПРИМЕЧАНИЕ. Для этого также есть настройки на уровне приложения, но банки, о которых вы заботитесь, находятся в WAR / область видимости веб-модуля, а не EAR / приложение), установив режим делегирования загрузчика классов на «родительский последний». Это заставит загрузчик классов веб-модуля искать его локальный путь к классу, прежде чем передать нагрузку его родителям.
https://www.ibm.com/support/knowledgecenter/SSEQTP_8.5.5/com.ibm.websphere.base.doc/ae/trun_classload_server.html
2) Поставьте банки сначала нужно загрузить в общую библиотеку, выбрать опцию «использовать изолированный загрузчик классов для этой общей библиотеки» и связать эту общую библиотеку с приложением или веб-модулем. Как правило, это более безопасный вариант, поскольку он ограничивает область последней родительской загрузки только теми банками, которые в нем нуждаются, хотя ваше приложение выглядит достаточно маленьким, чтобы в этом случае оно могло быть излишним. Обратите внимание, что классы в изолированной разделяемой библиотеке не могут «видеть» классы в EAR / WAR, потому что они получают собственный загрузчик классов, поэтому вы должны убедиться, что вещи в изолированной библиотеке также имеют свои зависимости.
https://www.ibm.com/support/knowledgecenter/SSEQTP_8.5.5/com.ibm.websphere.base.iseries.doc/ae/ucws_rsharedlib_inst.html