簡體   English   中英

GWT /休眠:java.lang.NoClassDefFoundError:org /休眠/攔截器

[英]GWT/Hibernate: java.lang.NoClassDefFoundError: org/hibernate/Interceptor

我正在嘗試在我的project-web-server中初始化一個Hibernate會話。 為此,我使用了一個庫,我編寫了project-data-model ,將其鏈接為maven中的依賴項:

項目網絡服務器 pom.xml:

    <dependency>
        <groupId>com.preoject.server</groupId>
        <artifactId>project-data-model</artifactId>
        <version>0.0.1-SNAPSHOT</version>
    </dependency>

因此, HibernateSession.java處於project-data-model中 這就是我在project-web-server中使用它的方式:

public class ServerConfig implements ServletContextListener {

    public void contextInitialized(ServletContextEvent event) {
        try {
            HibernateSession.initialize();
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        }
    }

    public void contextDestroyed(ServletContextEvent event) {
        // Do stuff on shutdown.
    }
}

即使我將數據模型項目引用為依賴項,我仍遇到java.lang.NoClassDefFoundError異常:

java.lang.NoClassDefFoundError: org/hibernate/Interceptor
    at java.lang.Class.forName0(Native Method)
    at java.lang.Class.forName(Unknown Source)
    at com.google.appengine.tools.development.agent.runtime.RuntimeHelper.checkRestricted(RuntimeHelper.java:70)
    at com.google.appengine.tools.development.agent.runtime.Runtime.checkRestricted(Runtime.java:65)
    at com.project.datamodel.HibernateSession.initialize(HibernateSession.java:19)
    at com.project.web.server.ServerConfig.contextInitialized(ServerConfig.java:14)
    ...

我不知道該怎么辦。 文件夾war/WEB-INF/lib不包含任何與Hibernate相關的庫; 可能是問題所在嗎? 我不確定,因為我已將Hibernate依賴項添加到父pom.xml中:

    <dependency>
        <groupId>org.hibernate</groupId>
        <artifactId>hibernate-core</artifactId>
        <version>4.0.1.Final</version>
    </dependency>
    <dependency>
        <groupId>org.hibernate</groupId>
        <artifactId>hibernate-validator</artifactId>
        <version>4.2.0.Final</version>
    </dependency>
    <dependency>
        <groupId>org.hibernate.common</groupId>
        <artifactId>hibernate-commons-annotations</artifactId>
        <version>4.0.1.Final</version>
        <classifier>tests</classifier>
    </dependency>
    <dependency>
        <groupId>org.hibernate.javax.persistence</groupId>
        <artifactId>hibernate-jpa-2.0-api</artifactId>
        <version>1.0.1.Final</version>
    </dependency>
    <dependency>
        <groupId>org.hibernate</groupId>
        <artifactId>hibernate-entitymanager</artifactId>
        <version>4.0.1.Final</version>
    </dependency>

Maven Eclipse插件默認將您的依賴項添加到Eclipse項目類路徑中。 除非您為所需的用例明確配置它,否則它不知道任何自定義的構建/打包/部署方案。 也許這個問題對您的用例會有所幫助。 本文介紹了如何配置M2Eclipse插件目標。

不過,我希望Eclipse的GWT插件(我假設您已使用它)將從項目類路徑中獲取所有內容並將其復制到適當的位置,我不確定為什么它在您的設置中不起作用。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM