0

SimpleJdbcDaoSupport を使用して、Spring プロジェクトから MySQL ルーチンにアクセスしようとしています。

インターフェイス「AdminMessageManager」を実装する「AdminSimpleMessageManager」というクラスがあります。

「AdminSimpleMessageManager」には、インターフェース「AdminMessageDao」を実装するクラス「AdminSimpleJdbcMessageDao」のインスタンスがあります。

AdminSimpleJdbcMessageDao には次のメソッドがあります。

public class AdminSimpleJdbcMessageDao extends SimpleJdbcDaoSupport implements AdminMessageDao {

public int addMessage(String from, String message) {
    return getJdbcTemplate().queryForInt("call insert_contact_message(?, ?)", from, message);
}

}

アプリケーションコンテキストに以下を含めました。

<bean id="dataSource" class="org.springframework.jndi.JndiObjectFactoryBean">
    <property name="jndiName" value="java:comp/env/jdbc/OctagonDB"/>
</bean>

<bean id="adminMessageManager" class="Managers.AdminSimpleMessageManager">
    <property name="adminMessageDao" ref="adminMessageDao"/>
</bean>

<bean id="adminMessageDao" class="Managers.dao.AdminSimpleJdbcMessageDao">
    <property name="dataSource" ref="dataSource"/>
</bean>

しかし、重要な行がいくつか欠けているように感じます。エラーが発生します

不合格 - コンテキスト パス /NewWebsite にアプリケーションをデプロイしましたが、コンテキストを開始できませんでした

とりわけ。

4

1 に答える 1

0

クラスパスにMySQLJDBCドライバーを含める必要があります。さらに、ドライバークラス名の構成をに更新する必要がありますcom.mysql.jdbc.Driverorg.gjt.mm.mysql.Driver下位互換性のためにのみ保持されます。

ただし、JNDIを介してデータソースをロードしているように見えるので、ドライバーJARは、アプリではなくコンテナー(JNDIを介してデータソースを提供する)にある必要がありますWEB-INF/libか?

于 2012-12-28T14:11:13.690 に答える