1

警告: 初心者注意!

私はSpringを学び始めたばかりで、最初のアプリを起動して実行しようとしています。これは、DBからデータを読み取って表示するだけです。

SpringSource Tool Suite 2.8.0.RELEASE を使用しています。新しい Spring MVC プロジェクトを作成し、ローカルの MySQL DB からデータを読み取りたいと考えています。

簡単な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.6.1.RELEASE\spring-insight-instance\wtpwebapps\MyAppName\WEB-INF\lib lib フォルダーには spring-jdbc-3.1.0.RELEASE.jar が含まれており、それを開くと DriverManagerDataSource クラス ファイルが表示されるため、上記のエラーが発生する理由がわかりません。

アドバイスをいただければ幸いです。

4

4 に答える 4

0

Eclipseでも同じ問題が発生し、新しいワークスペースを作成することでこの問題を解決しました。

于 2012-12-13T08:32:58.960 に答える
0

リリースではなく、必要なjarソースを追加しました。奇妙ですが、それをリリースバージョンに変更すると、この問題が修正されました。

于 2014-09-09T10:21:28.583 に答える
0

プロジェクトに同じjarファイルを2回含めました。1つを削除すると、機能しました。

于 2012-03-25T20:33:14.390 に答える
0

サーバーで使用できるように、Spring ライブラリがクラスパスにあることを確認します。

于 2012-03-24T17:46:49.463 に答える