我正在寻找使用Spring和JNDI的方法,但在这里找不到问题:

我的Server.xml:

 <Resource name="jdbc/MimsDS"
      auth="Container"
      type="javax.sql.DataSource"
      driverClassName="oracle.jdbc.driver.OracleDriver"
      username="xxx" password="xxx"
      url="jdbc:oracle:thin:@192.168.1.3:1526:mimsdb10"
      maxActive="20" maxIdle="10" maxWait="-1"
      validationQuery="select sysdate from dual"
    />


我的应用程序上下文:

<bean id="dataSource" class="org.springframework.jndi.JndiTemplate">
    <property name="jndiName" value="java:comp/env/jdbc/MimsDS" />
    <property name="resourceRef" value="true" />
  </bean>

<bean id="simpleJdbcTemplate" class="org.springframework.jdbc.core.simple.SimpleJdbcTemplate">
    <property name="dataSource" ref="dataSource"/>
</bean>

<bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
    <property name="dataSource" ref="dataSource"/>
</bean>


我收到此错误:


  org.springframework.beans.factory.BeanCreationException:在文件[/usr/local/apache-tomcat-7.0/webapps/op-calendar/WEB-INF/classes/be/mims/opcalendar中定义名称为'calendarDaoImpl'的bean创建时出错/services/CalendarDaoImpl.class]:调用init方法失败;嵌套的异常是java.lang.IllegalArgumentException:需要'dataSource'或'jdbcTemplate'

最佳答案

您应该使用JndiObjectFactoryBean,而不是JndiTemplate

09-30 18:16