Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Spring3.0中配置数据源_Spring_Glassfish - Fatal编程技术网

在Spring3.0中配置数据源

在Spring3.0中配置数据源,spring,glassfish,Spring,Glassfish,大家好,我已经在glassfish 2.1中配置了连接池和JNDI资源。我可以在我的项目中通过查找方法获得数据源,一切都很好。然而,我决定尝试Spring框架并使用我现有的连接池 在Spring上下文文件中,我有以下内容: <jee:jndi-lookup id="dataSource" jndi-name="jdbc/name" /> <bean id="jdbcTemplate" class="org.springframework.jdbc.core.simple.Sim

大家好,我已经在glassfish 2.1中配置了连接池和JNDI资源。我可以在我的项目中通过查找方法获得数据源,一切都很好。然而,我决定尝试Spring框架并使用我现有的连接池

在Spring上下文文件中,我有以下内容:

<jee:jndi-lookup id="dataSource" jndi-name="jdbc/name" />
<bean id="jdbcTemplate" class="org.springframework.jdbc.core.simple.SimpleJdbcTemplate">
    <constructor-arg ref="dataSource"/>
</bean>
<bean id="dao" class="com.mycompany.mavenproject3.Dao">
    <property name="simpleJdbcTemplate" ref="jdbcTemplate"/>
</bean> 

部署项目时,我得到:

java.lang.IllegalArgumentException:“数据源”或“jdbcTemplate”是必需的]


为了获取数据源,我还需要在该文件或任何其他文件中配置其他内容吗?

可能是com.mycompany.mavenproject3.Dao扩展了,但您正在其上设置一个名为simpleJdbcTemplate的属性,这让我相信您已经定义了自己的属性来保存模板,因为Spring的实现中不存在这样的属性。因此,它会向您抱怨,因为您需要在使用JdbcDaoSupport对象之前设置它的或,就像它告诉您的那样。更改
您也可以在DAOBean中直接调用您的数据源,而不需要为jdbcTemplate执行另一个bean。因此,您的上下文文件如下所示:

<jee:jndi-lookup id="dataSource" jndi-name="jdbc/name" />
<bean id="dao" class="com.mycompany.mavenproject3.Dao">
        <property name="dataSource" ref="dataSource"/>
</bean>


在您必须在Dao类上扩展JdbcDaoSupport spring类(其中包含数据源的getter和setter)之后。

请向我们显示完整的堆栈跟踪和错误消息,而不仅仅是其中的一行。此外,将
设置为on可以消除定义
jdbcTemplate
bean的需要(假设c.m.mavenproject3.Dao扩展了
SimpleJdbcDaoSupport
Hello,是的,我的类扩展了SimpleJdbcDaoSupport。你是对的,没有一个名为simpleJdbcTemplate的属性,所以当我更改属性名称时,它告诉我不能将simpleJdbcTemplate转换为JdbcTemplate实例。我想我继承了方法setJ接收JdbcTemplate而不是SimpleJdbcTemplate的bcdTemplate。弄明白这一点后,我想我需要告诉框架注入JdbcTemplate:谢谢!!!