<bean id="myDataSource" class="org.springframework.jndi.JndiObjectFactoryBean">
        <property name="jndiName">
            <value>java:comp/env/jdbc/myds</value>
        </property>
    </bean>

解决方案 »

  1.   

    问题:
    本来是如下的配置....
    <!-- 数据源定义 -->
    <bean id="dataSource"
    class="org.apache.commons.dbcp.BasicDataSource"
    destroy-method="close">
    <property name="driverClassName">
    <value>com.microsoft.jdbc.sqlserver.SQLServerDriver</value>
    </property>
    <property name="url">
    <value>jdbc:microsoft:sqlserver://127.0.0.1:1433;DatabaseName=SteamJ2EEOA</value>
    </property>
    <property name="username">
    <value>sa</value>
    </property>
    <property name="password">
    <value></value>
    </property>

    </bean>
    <!-- spring支持的hibernate需要的sessionFactory-->
    <bean id="sessionFactory"
    class="org.springframework.orm.hibernate.LocalSessionFactoryBean">
    <property name="dataSource">
    <ref local="dataSource" />
    </property>
    <property name="configLocation">
    <value>classpath:hibernate.cfg.xml</value>
    </property>
    </bean>
    <!-- spring的事务管理定义 -->
    <bean id="transactionManager"
    class="org.springframework.orm.hibernate.HibernateTransactionManager">
    <property name="sessionFactory">
    <ref local="sessionFactory" />
    </property>

    </bean>
    因为没有连接池....所以是可以的.........
    现在用Saro老兄的配置法子............
    首先在Tomcat中配置如下:
    <Context path="/" reloadable="true" docBase="\SteamJ2EEOA" workDir="e:\jspSite\SteamJ2EEOA\work" ><Resource name="jdbc/SteamJ2EEOA" auth="Container" type="javax.sql.DataSource"/> 
    <ResourceParams name="jdbc/SteamJ2EEOA"> 
    <parameter> 
    <name>factory</name> 
    <value>org.apache.commons.dbcp.BasicDataSourceFactory</value> 
    </parameter> 
    <parameter> 
    <name>driverClassName</name> 
    <value>com.microsoft.jdbc.sqlserver.SQLServerDriver</value> 
    </parameter> 
    <parameter> 
    <name>url</name> 
    <value>jdbc:microsoft:sqlserver://127.0.0.1:1433;databaseName=SteamJ2EEOA</value> 
    </parameter> 
    <parameter> 
    <name>username</name> 
    <value>sa</value> 
    </parameter> 
    <parameter> 
    <name>password</name> 
    <value></value> 
    </parameter> 
    <parameter> 
    <name>maxActive</name> 
    <value>20</value> 
    </parameter> 
    <parameter> 
    <name>maxIdle</name> 
    <value>20</value> 
    </parameter> 
    <parameter> 
    <name>maxWait</name> 
    <value>-1</value> 
    </parameter> 
    </ResourceParams> 
    </Context>把spring配置改成如下:
    <!-- 数据源定义 --><bean id="dataSource" class="org.springframework.jndi.JndiObjectFactoryBean">
            <property name="jndiName">
                <value>java:comp/env/jdbc/SteamJ2EEOA</value>
            </property>
        </bean>
    <!-- spring支持的hibernate需要的sessionFactory-->
    <bean id="sessionFactory"
    class="org.springframework.orm.hibernate.LocalSessionFactoryBean">
    <property name="dataSource">
    <ref local="dataSource" />
    </property>
    <property name="configLocation">
    <value>classpath:hibernate.cfg.xml</value>
    </property>
    </bean>
    <!-- spring的事务管理定义 -->
    <bean id="transactionManager"
    class="org.springframework.orm.hibernate.HibernateTransactionManager">
    <property name="sessionFactory">
    <ref local="sessionFactory" />
    </property>

    </bean>
    运行结果出错:关键点的错误提示::::如下
      

  2.   

    2005-07-01 11:53:28 [org.springframework.beans.factory.support.DefaultListableBeanFactory]-[INFO] Creating shared instance of singleton bean 'transactionManager'
    2005-07-01 11:53:28 [org.springframework.beans.factory.support.DefaultListableBeanFactory]-[INFO] Creating shared instance of singleton bean 'sessionFactory'
    2005-07-01 11:53:28 [org.springframework.beans.factory.support.DefaultListableBeanFactory]-[INFO] Creating shared instance of singleton bean 'dataSource'
    2005-07-01 11:53:28 [org.springframework.beans.factory.support.DefaultListableBeanFactory]-[INFO] Destroying singletons in factory {org.springframework.beans.factory.support.DefaultListableBeanFactory defining beans [baseDAOProxy,employeeFacade,dutyFacade,organiseFacade,countFacade,noticFacade,policyFacade,ruleFacade,communicationFacade,dossierFacade,holidayFacade,purviewAssignFacade,empOperateFacade,managerFacade,dataSource,sessionFactory,transactionManager,employeeDAO,dutyDAO,organiseDAO,countDAO,noticDao,ruleDao,policyDao,dossierDao,holidayDao,communicationDao,empPlanDao,dayplanDao,summarizeDao,executDao,taskDao,feedbackDao,orgPlanDao,messageDao,purviewAssignDao]; root of BeanFactory hierarchy}
    2005-07-01 11:53:28 [org.springframework.web.context.ContextLoader]-[ERROR] Context initialization failed
    org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'employeeFacade' defined in class path resource [applicationContext.xml]: Can't resolve reference to bean 'transactionManager' while setting property 'transactionManager'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'transactionManager' defined in class path resource [dao-context.xml]: Can't resolve reference to bean 'sessionFactory' while setting property 'sessionFactory'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'sessionFactory' defined in class path resource [dao-context.xml]: Can't resolve reference to bean 'dataSource' while setting property 'dataSource'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'dataSource' defined in class path resource [dao-context.xml]: Initialization of bean failed; nested exception is javax.naming.NameNotFoundException: Name jdbc is not bound in this Context
    org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'transactionManager' defined in class path resource [dao-context.xml]: Can't resolve reference to bean 'sessionFactory' while setting property 'sessionFactory'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'sessionFactory' defined in class path resource [dao-context.xml]: Can't resolve reference to bean 'dataSource' while setting property 'dataSource'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'dataSource' defined in class path resource [dao-context.xml]: Initialization of bean failed; nested exception is javax.naming.NameNotFoundException: Name jdbc is not bound in this Context
    org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'sessionFactory' defined in class path resource [dao-context.xml]: Can't resolve reference to bean 'dataSource' while setting property 'dataSource'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'dataSource' defined in class path resource [dao-context.xml]: Initialization of bean failed; nested exception is javax.naming.NameNotFoundException: Name jdbc is not bound in this Context
    org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'dataSource' defined in class path resource [dao-context.xml]: Initialization of bean failed; nested exception is javax.naming.NameNotFoundException: Name jdbc is not bound in this Context
      

  3.   

    javax.naming.NameNotFoundException: Name jdbc is not bound in this Context
    at org.apache.naming.NamingContext.lookup(NamingContext.java:768)
    at org.apache.naming.NamingContext.lookup(NamingContext.java:138)
    at org.apache.naming.NamingContext.lookup(NamingContext.java:779)
    at org.apache.naming.NamingContext.lookup(NamingContext.java:138)
    at org.apache.naming.NamingContext.lookup(NamingContext.java:779)
    at org.apache.naming.NamingContext.lookup(NamingContext.java:151)
    at org.apache.naming.SelectorContext.lookup(SelectorContext.java:136)
    at javax.naming.InitialContext.lookup(InitialContext.java:347)
    at org.springframework.jndi.JndiTemplate$1.doInContext(JndiTemplate.java:123)
    at org.springframework.jndi.JndiTemplate.execute(JndiTemplate.java:85)
    at org.springframework.jndi.JndiTemplate.lookup(JndiTemplate.java:121)
    at org.springframework.jndi.JndiLocatorSupport.lookup(JndiLocatorSupport.java:71)
    at org.springframework.jndi.JndiObjectLocator.lookup(JndiObjectLocator.java:85)
    at org.springframework.jndi.JndiObjectFactoryBean.afterPropertiesSet(JndiObjectFactoryBean.java:124)
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1114)
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:349)
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:257)
    at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:223)
    at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:147)
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.resolveReference(AbstractAutowireCapableBeanFactory.java:1021)
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.resolveValueIfNecessary(AbstractAutowireCapableBeanFactory.java:944)
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyPropertyValues(AbstractAutowireCapableBeanFactory.java:885)
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:714)
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:331)
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:257)
    at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:223)
    at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:147)
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.resolveReference(AbstractAutowireCapableBeanFactory.java:1021)
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.resolveValueIfNecessary(AbstractAutowireCapableBeanFactory.java:944)
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyPropertyValues(AbstractAutowireCapableBeanFactory.java:885)
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:714)
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:331)
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:257)
    at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:223)
    at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:147)
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.resolveReference(AbstractAutowireCapableBeanFactory.java:1021)
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.resolveValueIfNecessary(AbstractAutowireCapableBeanFactory.java:944)
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyPropertyValues(AbstractAutowireCapableBeanFactory.java:885)
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:714)
    at
      

  4.   

    其实都叫连接池,用spring得bean配置的叫本地连接池,在tomcat配置的叫容器连接池
    试一下<property name="jndiName">
                <value>java:jdbc/SteamJ2EEOA</value>
      

  5.   

    不能够......把名字改成java:jdbc/SteamJ2EEOA  错误很多............上面所说的这么多错误...我在web.xml中配置了.....
    <resource-ref>
    <res-ref-name>jdbc/SteamJ2EEOA</res-ref-name>
    <res-type>javax.sql.DataSource</res-type>
    <res-auth>Container</res-auth>
    </resource-ref>
    已经没有了.......但是现在的错误是..........
    org.apache.commons.dbcp.SQLNestedException: Cannot create JDBC driver of class '' for connect URL 'null'
    这个错误我搜索了一下.无非是说.数据库驱动类没放好......
    我在直接用jsp 来lookup这个DataSource是能够连上..说明我的连接池配置没有错误....只能是在spring中配置出错....现在就是上面的一个error...不知道大侠们..有没有类似的 问题.....
      

  6.   

    补充说明:
    我的错误是在 启动tomcat的时候 出现的....
    我运行我的整个网站代码.......都是没问题的.....
    数据库也可以新增,查询,删除 数据....