繁体   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