Eclipse +Tomcat配置JNDI数据源

以下是具体配置的步骤:

1.首先配置Tomcat下的jndi数据源。具体存放目录apache-tomcat-7.0.59\conf\Catalina\localhost 下

osh.xml

<?xml version='1.0' encoding='utf-8'?>
<Context docBase="G:\sbwork\oshome\WebContent" reloadable="false" path="/osh">
   <Resource
	name="jdbc/osh" auth="Container"
	type="javax.sql.DataSource"
        driverClassName="oracle.jdbc.driver.OracleDriver"
        url="jdbc:oracle:thin:@(DESCRIPTION=(ADDRESS_LIST =(ADDRESS=(PROTOCOL=TCP)(HOST=localhost)(PORT=1521)))(CONNECT_DATA=(SERVICE_NAME=orcl)(SERVER=DEDICATED)))"
        validationQuery="select 0 from DUAL"
        username="olay"
        password="123456"
        maxActive="100"
        maxIdle="50"
        maxWait="10000"
        removeAbandoned="true"
        removeAbandonedTimeout="60"/>
</Context>

(2)在tomcat的安装文件中lib目录下放入数据库驱动jar。

(3)spring的applicationContext.xml中配置datasource:

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

注意Vlaue属性中必须加入java:comp/env,后面才是servers中的Resource 的name

(4)web.xml(这一步在eclipse项目要配上,不然找不到数据源)

<resource-ref>
		<description>Oracle Connection</description>
		<res-ref-name>jdbc/osh</res-ref-name>
		<res-type>javax.sql.DataSource</res-type>
		<res-auth>Container</res-auth>
</resource-ref>

在配置过程中,本人遇到下面问题,现在贴出来,分享一下。

同样的配置,同样的方法。Myeclipse项目启动正常,但是eclipse项目启动报错,错误入下:

org.springframework.beans.factory.BeanCreationException: Error creating bean with name ‘OSHDatasource‘ defined in ServletContext resource [/osh/config/osh-servlet.xml]: Invocation of init method failed; nested exception is javax.naming.NameNotFoundException: Name [jdbc/osh] is not bound in this Context. Unable to find [jdbc].

错误很明显是找不到jdbc/osh,导致获取不到数据源。 很郁闷的是myclipse下没问题。纠结了好久,终于找到问题所在。 Eclipse环境下在不到tomcat的jndi数据源。 因此要在web.xml文件加上以下代码

<resource-ref>
		<description>Oracle Connection</description>
		<res-ref-name>jdbc/osh</res-ref-name>
		<res-type>javax.sql.DataSource</res-type>
		<res-auth>Container</res-auth>
</resource-ref>

这样就可以找到tomcat的数据源,问题解决了。

时间: 2024-10-11 07:40:20

Eclipse +Tomcat配置JNDI数据源的相关文章

在Tomcat配置JNDI数据源的三种方式

在Tomcat配置JNDI数据源的三种方式 分类: java进阶2012-07-01 10:24 18328人阅读 评论(0) 收藏 举报 tomcatjdbcweblogicmysqlbean测试 目录(?)[+] 在我过去工作的过程中,开发用服务器一般都是Tomcat 数据源的配置往往都是在applicationContext.xml中配置一个dataSource的bean 然后在部署时再修改JNDI配置 我猜是因为Tomcat的配置需要改配置文件 不像JBoss,Weblogic等服务器在

Tomcat配置JNDI数据源

本文将介绍Tomcat配置JNDI数据源的方法,主要分为配置局部数据源(仅供单个应用使用)和全局数据源(所有用该Tomcat的应用都可以使用) 一.思考 从我们学习Web开发以来,我们都是通过程序代码来实现数据库的访问的.从一开始直接将数据库配置信息写在代码中,到后来将配置信息抽取出来写在了Properties文件中,我们访问数据库的代码更加精简. 而通过JNDI方式访问数据库则更为直接,JNDI连接数据库的方式直接将数据库信息放在Tomcat中,而项目代码里直接通过JNDI技术就可以得到数据源

Tomcat配置JNDI数据源的三种方式

第一种,单个应用独享数据源 就一步,找到Tomcat的server.xml找到工程的Context节点,添加一个私有数据源 Xml代码   <Context docBase="WebApp" path="/WebApp" reloadable="true" source="org.eclipse.jst.jee.server:WebApp"> <Resource name="jdbc/mysql&q

tomcat 配置JNDI数据源

db2 版本 在context.xml里的context节点内加入下面代码. <Resource name="jdbc/SUNMANAGER" auth="Container" type="javax.sql.DataSource" driverClassName="com.ibm.db2.jcc.DB2Driver" url="jdbc:db2://18.1.99.235:50000/sunyard"

JNDI学习总结(二)——Tomcat下使用C3P0配置JNDI数据源

一.C3P0下载 C3P0下载地址:http://sourceforge.net/projects/c3p0/files/?source=navbar 下载完成之后得到一个压缩包. 二.使用C3P0配置JNDI数据源 Tomcat6.x中配置JNDI数据源时默认使用的是Tomcat6.x自带的DBCP连接池,Tomcat6.x使用DBCP连接池配置JNDI数据源如下: 1 <Resource 2 name="oracleDataSource" 3 auth="Conta

JNDI学习总结(三)——Tomcat下使用Druid配置JNDI数据源

com.alibaba.druid.pool.DruidDataSourceFactory实现了javax.naming.spi.ObjectFactory,可以作为JNDI数据源来配置. 一.下载Druid的jar包 下载地址:http://mvnrepository.com/artifact/com.alibaba/druid/1.0.9,如下图所示: druid.jar依赖log4j的jar包,所以还需要下载log4j的jar包. log4j的下载地址如下:http://mvnreposi

Eclipse Tomcat配置/管理/调试指南

从myeclipse转到Eclipse最不方便的之一莫过于Web项目部署了,老是在想怎么不能把myeclipse的那个移植过来,或者有没有高人能按照Myeclipse开发一个,非常遗憾. 原版的Eclipse自带WTP,WTP本身的Web应用服务器管理功能还可以,但有些复杂. 要想把它用顺手,还要花点时间来学习一下.学会后还算方便的. 目前还未找到十分好用的Eclipse下的管理Tomcat的插件. 有一个老处于插件TomcatPlugin V321,只能管理一个Tomcat,数量上不够用. 所

Tomcat配置多数据源出现Unable to create initial connections

迁自恶心人的网易博客 2017-06-27完整标题:Tomcat配置多个JNDI数据源(Postgresql)出现Unable to create initial connections of pool 版本说明 tomcat7Postgresql9.1 问题描述 在conf/context.xml中配置了两个数据源指向如下: <Resource name="jdbc/web" auth="Container" type="javax.sql.Dat

Tomcat配置JNDI

1.JNDI是什么?使用JNDI有什么好处? JNDI是 Java 命名与目录接口(Java Naming and Directory Interface),在J2EE规范中是重要的规范之一. 我个人对jndi的了解是:配置数据库的方式用在了外部配置,一般会是web容器的配置文件里面,而达到如果数据库连接属性或数据库类型不一样可以做到不修改编码. 但是个人觉得这是一项落后的技术,毕竟现在用springboot,本身不用我们去关心太多web容器的问题,而且springboot的基于外部配置文件的自