Ошибка загрузки класса в проекте Spring MVC для новичка Spring - PullRequest
1 голос
/ 24 марта 2012

Предупреждение: оповещение новичка!

Я только начинаю изучать Spring и пытаюсь запустить мое первое приложение, которое будет просто читать некоторые данные из БД и отображать их.

Я использую SpringSource Tool Suite 2.8.0.RELEASE. Я создал новый проект Spring MVC и хочу прочитать некоторые данные из локальной базы данных 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>

Когда я щелкаю правой кнопкой мыши по проекту и выбираю «Отладка как»> «Отладка на сервере», я получаю сообщение об ошибке:

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.6.1.RELEASE \ spring-insight-instance \ wtpwebapps \ MyAppName \ WEB-INF \ lib на моей машине), а папка lib содержит spring-jdbc-3.1.0.RELEASE.jar, и когда я ее открываю, я вижу файл класса DriverManagerDataSource, поэтому не знаю, почему я получаю ошибку выше.

Любой совет с благодарностью.

Ответы [ 4 ]

0 голосов
/ 09 сентября 2014

Я добавил требуемый источник jar вместо релиза. Странно, но изменение версии для выпуска исправило эту проблему.

0 голосов
/ 26 марта 2012

У меня был один и тот же файл jar, включенный в проект дважды. Удалил один и все заработало.

0 голосов
/ 13 декабря 2012

У меня была такая же проблема в Eclipse, и создание новой рабочей области решило эту проблему.

0 голосов
/ 24 марта 2012

Убедитесь, что библиотеки Spring находятся в пути к классам, чтобы они были доступны для сервера.

...