我正在开发一个 hello-world 类型的 Web 应用程序。我使用 Eclipse Helios 作为我的 IDE,使用 Maven 2 来处理依赖项,并使用本地运行的 Tomcat 7 服务器来部署和测试。该应用程序基于 Spring MVC,并使用 Hibernate 进行数据管理。
我可以成功地将项目打包成 WAR 文件。我在Tomcat中部署WAR时,日志中报如下错误:
严重:上下文初始化失败
org.springframework.beans.factory.BeanCreationException:创建 ServletContext 资源 [/WEB-INF/spring-servlet.xml] 中定义的名称为“hibernateSessionFactory”的 bean 时出错:调用 init 方法失败;嵌套异常是 java.lang.NoClassDefFoundError: Could not initialize class org.hibernate.cfg.AnnotationConfiguration at
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1338) 在 org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:473) 在 org.springframework.beans.factory。 support.AbstractAutowireCapableBeanFactory$1.run(AbstractAutowireCapableBeanFactory.java:409) 等...
我检查以确保我的 POM 中包含正确的依赖项,它是:
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-annotations</artifactId>
<version>3.4.0.GA</version>
<type>jar</type>
<optional>false</optional>
</dependency>
我检查了打包的 WAR 文件是否具有所需的 JAR 文件,该文件在错误中提到了 (org.hibernate.cfg.AnnotationConfiguration) 类,它确实:
./Tomcat 7/webapps/helloworld/WEB-INF/lib/hibernate-annotations-3.4.0.GA.jar
根据这些信息,我认为这可能是类路径配置问题。根据我在 Tomcat 7 上阅读的文档,Tomcat 应该能够利用“/WEB-INF/lib”文件夹中的 JAR 文件。任何人都知道我是否可能跳过了配置 Tomcat 的步骤以使其识别 webapp 的 lib 文件夹中的 JAR 文件?