`
august_000
  • 浏览: 34030 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

在spring用jndi得到tomcat中的datasource的问题

阅读更多

今天想把项目中配置在spring中的数据源移到tomcat中来配置,遇见了一些问题,请各位指教,小弟感谢了。

目的:从spring中得到tomcat中配置的datasource。

我的做法:

在tomcat的context.xml文件中GlobalNamingResources标签中加入如下代码:

<Resource
          name="dataSource"
          type="javax.sql.DataSource"
          password="54mwr"
          driverClassName="org.postgresql.Driver"
          maxIdle="3"
          maxWait="5000"
          username="alemis"
          url="jdbc:postgresql://localhost:5432/alemis_dev"
          maxActive="10"/>

在tomcat的context.xml文件中Host标签中加入如下代码:

 <Context path="/pro" privileged="true"
         docBase="E:/work2/alemis2/target/pro">
 </Context>

在项目的web.xml文件的最后面加了如下代码:

<resource-ref>
     <res-ref-name>dataSource</res-ref-name>
     <res-type>javax.sql.DataSource</res-type>
     <res-auth>Container</res-auth>
 </resource-ref>

然后在spring的application.xml文件中如下引用:

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

我启动tomcat的时候出现了如下错误:

2008-12-09 15:34:29,252 WARN Thread-1 hibernate.cfg.SettingsFactory Could not obtain connection metadata
org.apache.tomcat.dbcp.dbcp.SQLNestedException: Cannot create JDBC driver of class '' for connect URL 'null'
        at org.apache.tomcat.dbcp.dbcp.BasicDataSource.createDataSource(BasicDataSource.java:780)
        at org.apache.tomcat.dbcp.dbcp.BasicDataSource.getConnection(BasicDataSource.java:540)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
        at java.lang.reflect.Method.invoke(Unknown Source)
        at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:310)
        at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:198)
        at $Proxy0.getConnection(Unknown Source)
        at org.springframework.orm.hibernate3.LocalDataSourceConnectionProvider.getConnection(LocalDataSourceConnectionProvider.java:82)
        at org.hibernate.cfg.SettingsFactory.buildSettings(SettingsFactory.java:84)
        at org.hibernate.cfg.Configuration.buildSettings(Configuration.java:2073)
        at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1298)
        at org.springframework.orm.hibernate3.LocalSessionFactoryBean.newSessionFactory(LocalSessionFactoryBean.java:814)
        at org.springframework.orm.hibernate3.LocalSessionFactoryBean.buildSessionFactory(LocalSessionFactoryBean.java:732)
        at org.springframework.orm.hibernate3.AbstractSessionFactoryBean.afterPropertiesSet(AbstractSessionFactoryBean.java:211)
        at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1367

 

 

分享到:
评论
1 楼 shawnfree 2010-10-21  
如何解决的啊。。

相关推荐

    Tomcat6+spring+jndi配置数据源说明.docx

    Tomcat6+Spring+JNDI配置数据源说明 本文档主要介绍了Tomcat6+Spring+JNDI配置数据源的详细步骤和原理。数据源是一个池子,里面有若干个数据连接对象,当需要时就从里面拿一个使用,使用完毕就放回去,如果超过最大...

    spring+jotm 多数据源事务管理(三)JNDI+Tomcat

    在Tomcat中配置JNDI资源,以便Spring可以使用这些数据源。具体的XML配置如下: ```xml auth="Container" factory="org.objectweb.jndi.DataSourceFactory" type="javax.sql.DataSource" driverClassName=...

    如何在spring中等价配置得到原本由jndi配置实现的数据源

    然而,有时我们可能希望在非Web环境下或不使用JNDI的情况下配置数据源,这时我们需要在Spring的配置文件中等价地实现JNDI的数据源配置。以下是如何在Spring中进行这种转换的详细步骤和知识点: 1. **理解JNDI配置**...

    spring配置JNDI数据源

    JNDI主要用在应用服务器中,它提供了一个统一的接口来管理和查找资源,如数据源、邮件会话等。 首先,我们需要理解JNDI的工作原理。JNDI是一个API,它允许应用程序查找和访问各种命名和目录服务,这些服务可以是...

    spring 配置jndi

    - 考虑使用Spring Boot,它提供了更简洁的方式来配置JNDI数据源,只需在`application.properties`或`application.yml`中设置相应的JNDI名称即可。 - 为了提高性能,可以考虑使用连接池,如C3P0、HikariCP等。...

    tomcat6.0 配置jndi

    在Tomcat6.0中配置JNDI,主要是为了实现应用中的数据源管理,使得多个应用可以共享一个数据库连接池,提高资源利用率和系统性能。 **一、JNDI的基本概念** JNDI提供了一个统一的接口,让开发者可以查找和绑定各种...

    JNDI与Tomcat连接池的例子

    接着,你需要在`applicationContext.xml`或类似的Spring配置文件中,使用`jee:jndi-lookup`标签来查找这个数据源: ```xml &lt;beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi=...

    tomcat-jdbc-7.0.42.jar

    在Java Web开发中,数据库连接管理是至关重要的部分,而Tomcat JDBC连接池(也称为Tomcat JNDI DataSource Provider)则是一个高效、轻量级且功能丰富的连接池实现。这个连接池组件在Spring Boot框架中被广泛使用,...

    配置 JNDI 数据源

    1. Spring配置:在Spring的配置文件(如applicationContext.xml)中,不直接定义DataSource,而是声明一个Bean,使用JNDI查找来获取数据源。例如: ```xml &lt;bean id="dataSource" class="org.springframework.jndi....

    Tomcat学习笔记 - 【使用JNDI数据源】

    在Java应用服务器如Tomcat中,使用JNDI(Java Naming and Directory Interface)数据源是一种标准的方式,它允许我们集中管理和配置数据库连接,提高应用的可移植性和可维护性。JNDI提供了一个目录服务,应用程序...

    tomcat6+jndi+c3p0配置数据库连接池

    3. **配置Context元素**:在Tomcat的`context.xml`文件中,你需要定义一个数据源(DataSource),并将C3P0连接池与JNDI绑定。例如: ```xml type="com.mchange.v2.c3p0.ComboPooledDataSource" driverClass=...

    JNDI示例整合SSH

    2. **JNDI在应用服务器中的作用:** 在Tomcat这样的应用服务器中,JNDI常用来管理资源,比如数据源(DataSource)。开发者可以将数据源配置在服务器的上下文中,然后通过JNDI查找来获取,这种方式方便了应用的部署和...

    tomcat6_jndi.pdf

    本文将详细介绍在Tomcat 6环境中配置JNDI的具体步骤和注意事项,帮助开发者更好地理解和应用这一功能。 #### 二、配置JNDI资源 ##### 2.1 准备工作 - **安装Tomcat 6**:确保已经正确安装并配置了Tomcat 6环境。 -...

    Tomcat6.0配置JNDI数据源完整例子(5.5与此配置相同)

    在Tomcat中,我们通常会使用JNDI来查找和获取数据源,以便应用程序能便捷地创建和管理数据库连接。 配置JNDI数据源的步骤如下: 1. **配置Tomcat服务器**:打开Tomcat安装目录下的`conf/server.xml`文件。在`...

    tomcat&resin

    2. **在Web应用程序中使用JNDI**:在Spring框架的应用程序上下文文件`applicationContext.xml`中,你可以通过`JndiObjectFactoryBean`来引用之前定义的数据源: ```xml &lt;bean id="dataSource" class="org.spring...

    在Spring中使用JTA事务管理

    本文将详细介绍如何在Spring中使用JTA事务管理,包括通过集成JOTM(Java Open Transaction Manager)以及引用Tomcat的JTA事务。 ### 1. 通过集成JOTM,直接在Spring中使用JTA事务 #### 1.1. 添加JOTM类库到类路径...

    Tomcat统一配置C3P0连接池

    - **4.1.1 添加新数据源**:在每个应用模块的Spring配置文件`spring-context.xml`中,使用`&lt;bean&gt;`标签创建一个`JndiObjectFactoryBean`,通过JNDI查找之前在Tomcat中配置的数据源。 在完成这些配置后,每个应用...

    tomcat配置大全 tomcat配置大全

    总结,配置Tomcat涉及的关键步骤包括:添加JDBC驱动到类路径,配置`context.xml`以定义数据源,更新`web.xml`以声明对数据源的引用,最后通过JNDI在应用程序中查找并使用数据源。正确配置这些元素对于确保Tomcat能够...

Global site tag (gtag.js) - Google Analytics