2

我想使用 Oracle 数据库、Hibernate 5 和 Apache Olingo V4 为自己构建一个小应用程序。

我使用 maven 将应用程序拆分为单独的 Hibernate 和单独的 OData 项目。

所以我的休眠服务正在工作。我的 Odata 服务(带有示例数据)也在工作。

现在我想使用 maven 组合这些项目。在 Odata 项目 pom 中,我添加了我的休眠项目的依赖项并收到以下错误消息。

SCHWERWIEGEND:servlet [jsp] 的 Servlet.service() 在路径 [/esa_odatav4] 的上下文中抛出异常 [java.lang.LinkageError:加载程序约束冲突:解析接口方法时“javax.servlet.jsp.JspApplicationContext.getExpressionFactory()Ljavax /el/ExpressionFactory;" 当前类 org/apache/jsp/index_jsp 的类加载器(org/apache/jasper/servlet/JasperLoader 的实例)和类加载器(org/codehaus/plexus/classworlds/realm/ClassRealm 的实例)方法的定义类 javax/servlet/jsp/JspApplicationContext 对于签名中使用的类型 javax/el/ExpressionFactory 具有不同的类对象] 根本原因 java.lang.LinkageError: loader constraint violation: when resolve interface method "javax.servlet .jsp.JspApplicationContext。

我已经搜索了链接的错误,并发现了很多对我没有帮助的东西。我尝试了不同的排除。

为了运行应用程序,我使用了 maven tomcat 插件,但它不起作用。奇怪的是,如果我使用本地 tomcat 实例运行项目,它会完美运行。

有人知道如何在 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>
4

0 回答 0