Hibernate 5 + Apache Olingo V4 + плагин Maven Tomcat = LinkageError
Я хочу создать небольшое приложение для себя, используя базу данных Oracle, Hibernate 5 и Apache Olingo V4.
Я разделил приложение на отдельный Hibernate и отдельный проект OData, используя maven.
Так что мой сервис Hibernate работает. И мой сервис Odata (с примерами данных) тоже работает.
Теперь я хочу объединить эти проекты с помощью Maven. В po m проектов Odata я добавляю зависимость моего проекта hibernate и получаю следующее сообщение об ошибке.
SCHWERWIEGEND: Servlet.service () для сервлета [jsp] в контексте с путем [/esa_odatav4] вызвало исключение [java.lang.LinkageError: нарушение ограничения загрузчика: при разрешении метода интерфейса "javax.servlet.jsp.JspApplicationContext.getExpressionFactory (L) / эл /ExpressionFactory;" загрузчик классов (экземпляр org/apache/jasper/servlet/JasperLoader) текущего класса, org/apache/jsp/index_jsp и загрузчик классов (экземпляр org/codehaus/plexus/classworlds/realm/ClassRealm) для Класс, определяющий метод, javax/servlet/jsp/JspApplicationContext, имеет разные объекты Class для типа javax/el/ExpressionFactory, используемого в подписи] с первопричиной java.lang.LinkageError: нарушение ограничения загрузчика: при разрешении метода интерфейса "javax.servlet.jsp.JspApplicationContext.getExpressionFactory()Ljavax/ эл /ExpressionFactory;" загрузчик классов (экземпляр org/apache/jasper/servlet/JasperLoader) текущего класса, org/apache/jsp/index_jsp и загрузчик классов (экземпляр org/codehaus/plexus/classworlds/realm/ClassRealm) для Класс, определяющий метод, javax/servlet/jsp/JspApplicationContext, имеет различные объекты Class для типа javax/el/ExpressionFactory, используемого в подписи в org.apache.jsp.index_jsp._jspInit(index_jsp.java:31) в org.apache.jasper.runtime.HttpJspBase.init(HttpJspBase.java:49) в org.apache.jasper.servlet.JspServletWrapper.getServlet(JspServletWrapper.java:180) в org.apache.jasper.servlet.sp_service: Jspervservice 369) в org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:390) в org.apache.jasper.servlet.JspServlet.service(JspServlet.java:334) в javax.servlet.http.Htp. (HttpServlet.java:728) в org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305) в org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210) по адресу org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51) по адресу org.apache.catalina.core.ApplicationFilterChain.inFF (в org.apache.catalina.core.ApplicationFilterChain.doFilter (ApplicationFilterChain.java:210) в org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:222) в org.apache.kevetatatataina (StandardContextValve.java:123) в org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:502) в org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.javag:17).catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:100) в org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:953) в org.apache.catalina.core.StandardEngineValve.jpg:118) в org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:408) в org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1041) в org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:603) в org.apache.to mcat.otil.net SocketProcessor.run(JIoEndpoint.java:312) в java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) в java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPool.6ung).Thread.run(Thread.java:745)
Я уже искал связанную ошибку и нашел много вещей, которые мне не помогли. Я пробовал разные исключения.
Для запуска приложения я использую плагин maven to mcat, который не работает. Странная вещь, если я запускаю проект с локальным экземпляром to mcat, он работает отлично.
У кого-нибудь есть подсказка, как запустить приложение на плагине maven?
Но я почти уверен, что ошибка связана с библиотеками проектов. Понятия не имею.
Мои зависимости проекта Hibernate:
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-core</artifactId>
<version>5.2.4.Final</version>
</dependency>
И мои зависимости OData:
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>servlet-api</artifactId>
<version>${javax.version}</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.apache.olingo</groupId>
<artifactId>odata-server-api</artifactId>
<version>${odata.version}</version>
</dependency>
<dependency>
<groupId>org.apache.olingo</groupId>
<artifactId>odata-server-core</artifactId>
<version>${odata.version}</version>
</dependency>
<dependency>
<groupId>org.apache.olingo</groupId>
<artifactId>odata-commons-api</artifactId>
<version>${odata.version}</version>
</dependency>
<dependency>
<groupId>org.apache.olingo</groupId>
<artifactId>odata-commons-core</artifactId>
<version>${odata.version}</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-simple</artifactId>
<version>${slf4j.version}</version>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
<version>1.7.11</version>
<scope>compile</scope>
</dependency>
<properties>
<javax.version>2.5</javax.version>
<odata.version>4.3.0</odata.version>
<slf4j.version>1.7.7</slf4j.version>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>