0

我一直在尝试使用 SimpleJdbcDaoSupport 从我的 Spring 项目中访问 MySQL 例程。

我有一个名为“AdminSimpleMessageManager”的类,它实现了“AdminMessageManager”接口。

“AdminSimpleMessageManager”有一个“AdminSimpleJdbcMessageDao”类的实例,它实现了“AdminMessageDao”接口。

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>

但我觉得缺少一些重要的行。我得到错误

FAIL - 在上下文路径 /NewWebsite 部署应用程序,但上下文无法启动

除其他事项外。

4

1 回答 1

0

您需要在类路径中包含MySQL JDBC 驱动程序。此外,您应该将驱动程序类名称的配置更新为com.mysql.jdbc.Driver. org.gjt.mm.mysql.Driver仅为了向后兼容而保留。

但是,由于您似乎是通过 JNDI 加载数据源,我猜驱动程序 JAR 应该在您的容器中(通过 JNDI 提供数据源)而不是在您的应用程序的WEB-INF/lib?

于 2012-12-28T14:11:13.690 回答