首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >春季jndi数据源设置

春季jndi数据源设置
EN

Stack Overflow用户
提问于 2013-05-09 16:39:25
回答 1查看 23.9K关注 0票数 2

嗨,我正在尝试使用jndi数据源。下面是代码

context.xml

代码语言:javascript
复制
    <Context antiJARLocking="true" path="/SpringMVCTest">
     <Resource auth="Container" driverClassName="com.mysql.jdbc.Driver" 
            maxActive="20" maxIdle="10" maxWait="10000" 
            name="jdbc/pluto" password="" 
            type="javax.sql.DataSource" 
            url="jdbc:mysql://localhost:3306/spring?zeroDateTimeBehavior=convertToNull" 
            username="pluto"/>
</Context>

在配置bean中是:

代码语言:javascript
复制
<bean id="dataSource" class="org.springframework.jndi.JndiObjectFactoryBean">
            <property name="jdbc/pluto" value="java:comp/env/jdbc/pluto"/>
        </bean>

我收到了这个错误

org.springframework.beans.factory.BeanCreationException:错误创建名为“contactController”的bean :自动关联注入失败;嵌套异常为org.springframework.beans.factory.BeanCreationException:无法自动创建字段:私有app.contact.service.ContactService app.contact.controller.ContactController.contactService;嵌套异常是org.springframework.beans.factory.BeanCreationException:错误创建名为“contactServiceImpl”的bean :注入自动关联失败;嵌套异常是org.springframework.beans.factory.BeanCreationException:不能自动更新字段:私有app.contact.service.ContactServiceImpl.contactDAO;嵌套异常是创建名称为“contactDAOImpl”的bean的org.springframework.beans.factory.BeanCreationException:错误:自动关联注入失败;嵌套异常是org.springframework.beans.factory.BeanCreationException:不能自动更新字段:私有org.hibernate.SessionFactory app.contact.dao.ContactDAOImpl.sessionFactory;嵌套异常是在设置bean属性'dataSource‘的同时创建名称为’org.springframework.beans.factory.BeanCreationException:‘的ServletContext资源/ setting /Spring-servlet.xml:无法解析对bean 'dataSource’的引用的ServletContext错误;嵌套异常是创建具有ServletContext资源/ setting /Spring-servlet.xml:错误设置属性值中定义的dataSource名称的bean的org.springframework.beans.factory.BeanCreationException:错误;嵌套异常是bean类的org.springframework.beans.NotWritablePropertyException:无效属性'jdbc/pluto‘,org.springframework.jndi.JndiObjectFactoryBean: Bean属性'jdbc/pluto’是不可写的,或者具有无效的setter方法。setter的参数类型是否与getter的返回类型匹配?相关原因:在org.springframework.beans.factory.BeanCreationException:资源/WEB/Spring-servlet.xml中定义了名为“dataSource”的bean创建dataSource错误:错误设置属性值;嵌套异常是bean类org.springframework.jndi.JndiObjectFactoryBean: Bean属性'jdbc/pluto‘的org.springframework.beans.NotWritablePropertyException:无效属性'jdbc/pluto’不可写或具有无效的setter方法。setter的参数类型是否与getter的返回类型匹配?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-05-09 17:46:21

您有这样的bean定义

代码语言:javascript
复制
<bean id="dataSource" class="org.springframework.jndi.JndiObjectFactoryBean">
    <property name="jdbc/pluto" value="java:comp/env/jdbc/pluto"/>
</bean>

属性名jdbc/pluto应该与setter匹配,因此Spring需要类似于setJdbc/Pluto()的内容,但这显然是不正确的java语法。

JndiObjectFactoryBean的角度来看,您似乎需要来自JndiObjectLocator超类的setJndiName()方法。

所以你的豆子应该看起来像

代码语言:javascript
复制
<bean id="dataSource" class="org.springframework.jndi.JndiObjectFactoryBean">
    <property name="jndiName" value="java:comp/env/jdbc/pluto"/>
</bean>
票数 9
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16466759

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档