2012-03-24 5 views
1

Внимание!Ошибка загрузки класса в Spring MVC project for Spring newbie

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

Я использую 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> 

я добавил это к корневой 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 на сервере я получаю ERRO r:

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, поэтому я не знаю, почему я получаю ошибку выше.

Любые советы очень ценятся.

+0

Является ли это плохая копия и вставляет пространство в 'org.springframework.jdbc.datasource.DriverM anagerDataSource' из файла root-context.xml? –

+0

Да, просто плохая копия и вставка в SO. Исправленный. – CodeClimber

+1

Попробуйте открыть отсутствующий класс в STS, используя CTRL + SHIFT + T, а затем введите его имя и посмотрите, присутствует ли он в пути к классам. –

ответ

0

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

0

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

0

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

+1

Имела ту же проблему в STS 3.3.0. spring-jdbc был в моем pom, но tc Server продолжал говорить, что org.springframework.jdbc.datasource.DriverManagerDataSource не найден. Я не получал эту проблему, пока я развивался на одной машине, но когда я импортировал свое рабочее пространство в STS, у меня возникла эта проблема. Я сделал то, что предложил Денис и переустановил STS, уничтожил мой репозиторий maven и снова создал рабочую область с нуля. Вместо импорта проекта я создал новый проект Spring MVC и скопировал файлы в этот новый проект, и он сработал. –

0

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