Aad*_*dam 2 spring jndi datasource spring-mvc
您好我正在尝试使用jndi数据源.下面是代码
的context.xml
<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>
Run Code Online (Sandbox Code Playgroud)
在spring-servlet配置bean中:
<bean id="dataSource" class="org.springframework.jndi.JndiObjectFactoryBean">
<property name="jdbc/pluto" value="java:comp/env/jdbc/pluto"/>
</bean>
Run Code Online (Sandbox Code Playgroud)
我收到这个错误
org.springframework.beans.factory.BeanCreationException:创建名为'contactController'的bean时出错:注入自动连接的依赖项失败; 嵌套异常是org.springframework.beans.factory.BeanCreationException:无法自动装配字段:private app.contact.service.ContactService app.contact.controller.ContactController.contactService; 嵌套异常是org.springframework.beans.factory.BeanCreationException:创建名为'contactServiceImpl'的bean时出错:注入自动连接的依赖项失败; 嵌套异常是org.springframework.beans.factory.BeanCreationException:无法自动装配字段:private app.contact.dao.ContactDAO app.contact.service.ContactServiceImpl.contactDAO; 嵌套异常是org.springframework.beans.factory.BeanCreationException:创建名为'contactDAOImpl'的bean时出错:注入自动连接的依赖项失败; 嵌套异常是org.springframework.beans.factory.BeanCreationException:无法自动装配字段:private org.hibernate.SessionFactory app.contact.dao.ContactDAOImpl.sessionFactory; 嵌套异常是org.springframework.beans.factory.BeanCreationException:创建在ServletContext资源[/WEB-INF/spring-servlet.xml]中定义名为'sessionFactory'的bean时出错:在设置bean属性时无法解析对bean'DataSource'的引用'数据源'; 嵌套异常是org.springframework.beans.factory.BeanCreationException:创建在ServletContext资源[/WEB-INF/spring-servlet.xml]中定义名称为'dataSource'的bean时出错:设置属性值时出错; 嵌套异常是org.springframework.beans.NotWritablePropertyException:bean类的无效属性'jdbc/pluto'[org.springframework.jndi.JndiObjectFactoryBean]:Bean属性'jdbc/pluto'不可写或具有无效的setter方法.setter的参数类型是否与getter的返回类型匹配?相关原因:org.springframework.beans.factory.BeanCreationException:在ServletContext资源[/WEB-INF/spring-servlet.xml]中定义创建名为'dataSource'的bean时出错:设置属性值时出错; 嵌套异常是org.springframework.beans.NotWritablePropertyException:bean类的无效属性'jdbc/pluto'[org.springframework.jndi.JndiObjectFactoryBean]:Bean属性'jdbc/pluto'不可写或具有无效的setter方法.setter的参数类型是否与getter的返回类型匹配?
你有一个bean定义
<bean id="dataSource" class="org.springframework.jndi.JndiObjectFactoryBean">
<property name="jdbc/pluto" value="java:comp/env/jdbc/pluto"/>
</bean>
Run Code Online (Sandbox Code Playgroud)
属性名称jdbc/pluto应该与setter匹配,因此Spring期望类似setJdbc/Pluto()但是这显然不是正确的java语法.
看着JndiObjectFactoryBean它看起来你想要超类的setJndiName()方法JndiObjectLocator.
所以你的bean应该是这样的
<bean id="dataSource" class="org.springframework.jndi.JndiObjectFactoryBean">
<property name="jndiName" value="java:comp/env/jdbc/pluto"/>
</bean>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
22877 次 |
| 最近记录: |