警告:新手警报!
我在学习Spring的早期,正在尝试启动并运行我的第一个应用程序,它只需从数据库中读取一些数据并显示出来
我使用的是SpringSource Tool Suite 2.8.0.RELEASE。我创建了一个新的SpringMVC项目,并希望从本地MySQL数据库中读取一些数据。
我写了一个简单的DAO类:
package com.blah.blah;
import org.springframework.jdbc.core.support.JdbcDaoSuppo rt;
public class MyDAO extends JdbcDaoSupport {
我已经将其添加到pom.xml文件中:
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-jdbc</artifactId>
<version>${org.springframework-version}</version>
</dependency>
我已经将其添加到root-context.xml中(这是要更新的正确配置文件吗?):
<bean id="myDataSource"
class="org.springframework.jdbc.datasource.DriverManagerDataSource">
<property name="driverClassName" value="com.mysql.jdbc.Driver" />
<property name="url" value="jdbc:mysql://localhost:3306/dbname" />
<property name="username" value="root" />
<property name="password" value="mypw" />
</bean>
<bean id="jdbcTemplate"
class="org.springframework.jdbc.core.JdbcTemplate" >
<constructor-arg ref="myDataSource"></constructor-arg>
</bean>
<bean id="parentDAO"
class="org.springframework.jdbc.core.support.JdbcD aoSupport">
<property name="dataSource" ref="myDataSource"></property>
</bean>
当我右键单击项目并选择Debug As>Debug on Server时,我会得到错误:
24-Mar-2012 16:13:42 org.apache.catalina.core.StandardContext listenerStart
SEVERE: Exception sending context initialized event to listener instance of
class org.springframework.web.context.ContextLoaderListener
org.springframework.beans.factory.CannotLoadBeanClassException:
Cannot find class [org.springframework.jdbc.datasource.DriverManagerDataSource]
for bean with name 'myDataSource' defined in ServletContext resource
[/WEB-INF/spring/root-context.xml]; nested exception is
java.lang.ClassNotFoundException: org.springframework.jdbc.datasource.DriverManagerDataSource
我已经看了一段时间了,不知道我做错了什么。我在我的机器上找到了应用程序部署到的文件夹(C:\Program Files\springsource\vfabric-tc-server-developer-2.2.6.1.REASE\spring insight instance\wtpwebapps\MyAppName\WEB-INF\lib),lib文件夹包含spring-jdbc-3.10.REASE.jar,当我打开它时,我可以看到DriverManagerDataSource类文件,所以我不知道为什么会出现上面的错误。
非常感谢任何建议。
检查Spring库是否在类路径中,以便它们可用于服务器。
我在项目中包含了两次相同的jar文件。删除了一个,它就起作用了。
我在Eclipse中遇到了同样的问题,创建一个新的工作区解决了这个问题。
我添加了所需的jar源代码,而不是发布。奇怪的是,将其更改为发布版本解决了这个问题。