当前位置: 首页 > 知识库问答 >
问题:

Spring MVC项目无法使用HiberNate

袁单鹗
2023-03-14

我想用Hibernate构建一个Spring MVC项目。

我使用的IDE是Eclipse 4.4.2(Luna),我为Eclipse Luna(4.4)安装了插件Spring Tool Suite(STS)。

我创建的项目是Spring项目

下面是我添加的外部罐子:

  • antlr-2.7.7。罐子
  • dom4j-1.6.1。罐子
  • hibernate-commons-annotations-4.0.5。最终的罐子
  • hibernate-core-4.3.9。最终的罐子
  • hibernate-jpa-2.1-api-1.0.0。最终的罐子
  • jandex-1.1.0。最终的罐子
  • javassist-3.18.1-GA.jar
  • jboss-logging-3.1.3。GA.jar
  • jboss-logging-annotations-1.2.0。Beta1。罐子
  • jboss-transaction-api_1.2_spec-1.0.0。最终的罐子
  • mysql-connector-java-5.0.8-bin。罐子

然后,我将数据库的细节添加到/src/main/webapp/WEB-INF/spring/appServlet/servlet上下文中。xml:

<beans:bean id="dataSource"
    class="org.springframework.jdbc.datasource.DriverManagerDataSource">
    <beans:property name="driverClassName" value="com.mysql.jdbc.Driver" />
    <beans:property name="url" value="jdbc:mysql://192.168.1.43/MyDatabase" />
    <beans:property name="username" value="testUser" />
    <beans:property name="password" value="thePassOfTheUser" />
</beans:bean>

但是,它显示错误消息:

org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'dataSource' defined in ServletContext resource [/WEB-INF/spring/appServlet/servlet-context.xml]: Instantiation of bean failed; nested exception is org.springframework.beans.BeanInstantiationException: Could not instantiate bean class [org.springframework.jdbc.datasource.DriverManagerDataSource]: Constructor threw exception; nested exception is java.lang.NoClassDefFoundError: org/apache/commons/logging/LogFactory


java.lang.NoClassDefFoundError: org/apache/commons/logging/LogFactory
    org.springframework.jdbc.datasource.AbstractDataSource.<init>(AbstractDataSource.java:37)
    org.springframework.jdbc.datasource.DriverManagerDataSource.<init>(DriverManagerDataSource.java:87)

由于我无法修复它,我尝试写hibernate.cfg.xml,但我不知道文件应该放在哪里。

我想知道如何设置bean,让我的项目可以使用Hibernate,以及如何在MVC项目中使用Hibernate的过渡方式(Hibernate.cfg.xml)。

5月19日添加

我找到了解决办法。

这是因为maven没有加载hibernate。因此,在向pom中添加以下代码之后。xml它可以工作:

<dependency>
    <groupId>org.hibernate</groupId>
    <artifactId>hibernate-entitymanager‌​</artifactId>
    <version>3.6.0.Final</version>
</dependency>
<dependency>
    <groupId>org.‌​hibernate</groupId>
    <artifactId>hibernate-core</artifactId>
    <version>3.6.0.Final</v‌​ersion>
</dependency>
<dependency>
    <groupId>com.h2database</groupId>
    <artifactId>h2</‌​artifactId>
    <version>1.3.156</version>
</dependency>
<dependency>
    <groupId>org.spring‌​framework</groupId>
    <artifactId>spring-jdbc</artifactId>
    <version>4.0.6.RELEASE</ve‌​rsion>
</dependency>

共有2个答案

纪翰
2023-03-14

stacktrace显示您缺少LogFactory,它是Apache Commons日志记录的一部分。我看你的外置罐子里没有。

对于hibernate的过渡方式,创建hibernate。cfg。xml配置文件,并将其放在应用程序类路径的根目录中。XML配置文件必须符合Hibernate 3配置DTD,该DTD可从http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd.

这里有一个关于它的教程。

阳宾实
2023-03-14

您的错误与类路径中缺少库有关。也就是说:

org.apache.commons.logging

试着先解决这个问题,然后判断问题是否仍然存在。

 类似资料:
  • 我试图建立一个简单的SpringMVC项目。 我创建了Web应用程序项目,然后添加了Spring和公共日志库。 还有这个网站。xml文件 这是HelloWebservlet。xml 然后我创建了java类(HelloContoller.java)com.tutorialspoint包 然后我在WEB-INF/JSP/hello中创建了JSP页面。jsp 我正在处理服务器glassfish,当我运行

  • 我已经为一个项目配置了SVN-Jenkins-Maven-Tomcat。小项目的每件事都很好。但当我试图构建包含大量JAR和包的实际项目时…它显示错误..找不到xxx包。我已经手动将依赖项JAR添加到本地maven存储库中。

  • 此后,在我的配置中,当我想在仿真程序中运行wear部分时,我会得到消息:。 磨损活动在窗口中有一个红色的。在将一个完美工作的穿戴项目从Studio2.1升级到2.2之后,也会发生这种情况。 我怀疑启动watch face服务会有一些问题,因为使用“Always on-app”构建该项目是非常有效的。清单中不能有错误,因为错误在创建它之后立即出现,甚至在运行任何东西之前。而且它肯定不是缺少的活动,因

  • 由于butterknife依赖的错误,我无法构建android项目。 错误 任务': app: javaPreCompileDebug'执行失败。 无法解析配置的所有文件: app: dedegAnnotationProcessorClasspath。转换butterknife-compiler-8.6.0.jar失败(com.jakewharton:巴特切夫-编译器: 8.6.0)以匹配属性{a

  • Spring Boot是否可以在上下文中正确地加载旧的jar?旧jar中的pom文件是否不会受到影响,因为它引用了一些父级的spring版本以及使用相同版本的jar?或者这些JAR只使用spring boot添加的依赖关系? 有人能建议我哪里做错了吗?

  • 好的,显然没有人有这个问题,因为我在网上找不到和我有同样问题的人。 我在本地机器和远程服务器上创建了一个Laravel 5.3项目,它们工作得很好。 我在GitHub中为Laravel项目创建了一个repo,并将整个项目推送到了存储库中。我将存储库克隆到另一台服务器上,突然和都崩溃了。 当我尝试运行时,会出现以下错误:。 当我尝试运行或时,它会给我这个错误: 知道怎么了吗?在Laravel项目中运