Джерси 2.26 Проверка бинов работает в WAR и не работает в EJB - PullRequest
0 голосов
/ 03 июля 2019

У меня есть 3 проекта maven: EAR = WAR + EJB

  • Джерси версия: 2.26
  • Сервер приложений Websphere: 8.5

    1. WAR имеет нормально работающий API-интерфейс и валидацию bean-компонента на объекте запроса.Я использую jersey-bean-validation.
    2. Затем я переместил класс объекта запроса в EJB, и проверка перестала работать.Это было очевидно, потому что валидация джерси-бина не была включена в EJB.Когда я включил проверку jersey-bean-компонента в pom EJB, развертывание приложения начало давать сбой.Ниже приведена ошибка:

java.lang.NoSuchMethodError: javax / ws / rs / core / Application.getProperties () Ljava / util / Map

часть stackstrace, как показано ниже:

com.ibm.ws.webcontainer.servlet.ServletWrapper init SRVE0271E: Uncaught init() exception
created by servlet [jersey-bean-validation-test-servlet] in application 
[jersey-bean-validation-test]:
java.lang.NoSuchMethodError: javax/ws/rs/core/Application.getProperties()Ljava/util/Map; 

(loaded from file:/<WAS85 location>/AppServer/plugins/javax.j2ee.jaxrs.jar
by org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader@4479d9e4)
called from class org.glassfish.jersey.server.ApplicationHandler 

(loaded from file:/<WAS85 location>/AppServer/profiles/AppSrv01/installedApps/VM122165
-FCNode04Cell/jersey-bean-validation-test.ear/jersey-bean-validation-test-web.war/WEB-INF
/lib/jersey-server-2.26.jar by 

com.ibm.ws.classloader.CompoundClassLoader@d08ed70a[war:jersey-bean-validation-test
/jersey-bean-validation-test-web.war]
Parent: com.ibm.ws.classloader.CompoundClassLoader@8a1ad3f5[PF]
[app:jersey-bean-validation-test]
   Delegation Mode: PARENT_LAST).
    at org.glassfish.jersey.server.ApplicationHandler.initialize
(ApplicationHandler.java:330)
    at org.glassfish.jersey.server.ApplicationHandler.lambda$initialize$1
(ApplicationHandler.java:316)
.
.

Deployment.xml content

<?xml version="1.0" encoding="UTF-8"?>
<appdeployment:Deployment xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI"
xmlns:appdeployment="http://www.ibm.com/websphere/appserver/schemas/5.0/appdeployment.xmi"
xmi:id="Deployment_155">

<deployedObject xmi:type="appdeployment:ApplicationDeployment"
xmi:id="ApplicationDeployment_155">

    <modules xmi:type="appdeployment:WebModuleDeployment" xmi:id="WebModuleDeployment_155"
uri="jersey-bean-validation-test-web.war" classloaderMode="PARENT_LAST"/>
    <classloader xmi:id="Classloader_155" mode="PARENT_FIRST"/>

  </deployedObject>

</appdeployment:Deployment>

Может кто-нибудь помочь, пожалуйста?Заранее спасибо.

...