Ответ 1
Вам необходимо выполнить следующие действия:
Отключить встроенный JAX-RS через свойство JVM com.ibm.websphere.jaxrs.server.DisableIBMJAXRSEngine=true
см. описание here.
Вы можете установить это свойство через консоль веб-администратора в Servers > WebSphere Application Servers > yourServerName
. Затем в разделе Server Infrastructure
Java and Process Management > Process definition > Java Virtual Machine > Custom properties
.
Создайте разделяемую библиотеку изолированную со всеми библиотеками JAX-RS 2.10, на консоли через Environment > Shared Libraries
.
Изолированная разделяемая библиотека создается путем проверки Use an isolated class loader for this shared library
параметра "Загрузка класса" при создании библиотеки.
Сопоставьте эту общую библиотеку с вашим приложением либо во время установки, либо позже через Applications > appName > Shared library references
.
Перезапустите сервер приложений. В SystemOut.log вы должны увидеть сообщение, инициализирующее классы JAX-RS:
[7/12/14 16:10:36:470 CEST] 0000004a JerseyServlet I Registering the Jersey servlet application, named javax.ws.rs.core.Application, with the following root resource and provider classes: [class jax.Hello, class org.glassfish.jersey.server.wadl.internal.WadlResource]
[7/12/14 16:10:36:688 CEST] 0000004a ApplicationHa I Initiating Jersey application, version Jersey: 2.10.1 2014-06-30 13:53:32...
ОБНОВЛЕНИЕ
Похоже, что также можно загружать банки JAX-RS из WAR. Вы должны установить это свойство DisableIBMJAXRSEngine
, и вам нужно изменить параметр загрузки класса в классе модуль (не на уровне EAR) classloader до Classes loaded with local class loader first (parent last)
В консоли администратора:
Приложения > WebSphere Enterprise Applications > {your.application} > Управление модулями > {your.module}
Измените раскрывающийся список порядка загрузчика класса: Classes loaded with local class loader first (parent last)
.
Спасибо за dooffas за его проверку, см. JAX-RS 2.0 WebSphere 8.5 без изолированной общей библиотеки