Tomcat配置数据源(JNDI方式)

阅读:1025 2019-03-20 16:46:27 来源:新网

tomcat配置数据源(jndi方式)一、直连接数据库

1java连接oralce

2java连接mysql

3java连接sqlserver

4java连接db2

5java连接infomix

6java连接sybase

7java连接postgresql

二、tomcat连接数据库(jndi连接)

1、先在自己应用程序web-inf目录下的web.xml添加以下语句:

然后在tomcat目录/conf/server.xml文件里相应的元素,添加如下子元素:

2、例子:以下是我的假设的项目acmeweb:

在相应程序的web.xml里添加

然后再server.xml里修改:

建议你把上面的内容编写成为一个xml文件,拷到conf/catalina/<主机名>/文件夹下

------------

--------------------------------------------------------------------------

jndi是j2ee中一个很重要的标准,通常我们是在ejb编程中用到,

tomcat4.0中提供了在jsp和servelt中直接使用jndi的方法,下面谈一下在tomcat4.0中配置和使用jndi的方法

(以通过jndi连接数据库为例)

假设使用的数据库是mysql,实验例子在tomcat_home/webapps/dbtest目录中

a.将mysql的jdbc连接库mm.mysql-2.0.9-bin.jar放入tomcat_home/common/lib中

b.配置tomcat_home/conf/serer.xml文件在段中加入一个context:

这是dbtest的根路径,这是为了在dbtest中使用做准备.

c.在上面加入的段加入

我们可以将按照sample加入,主要修改的是driverclassname,url,和用户帐号;需要强调的是"jdbc/testdb"就是jdni要查找的name.

d.在jsp或servlet中使用jndi查找服务

下面是在jsp文件中关于jndi使用的代码(文件名记为userhandledb.jsp)

需要注意的是jndiname要在前面加上"java:comp/env/"

f.在web.xml中加入

这里的jdbc/testdb要和c中resource段的name匹配

g.观察结果

首先确定数据库已经启动,接着启动tomcat,如果tomcat启动异常,可能的原因是数据库的jdbc库没有加载

最后打开浏览器,访问http://localhost:8080/dbtest/viewtable.jsp就可以看到结果

=====================================================================

一、数据源简介:************************************************************************************在java语言中,datasource对象就是一个代表数据源实体的对象。一个数据源就是一个用来存储数据的工具,它可以是复杂的大型企业级数据库,也可以是简单得只有行和列的文件。数据源可以位于在服务器端,也可以位于客服端。应用程序通过一个连接来访问数据源,那么一个datasource对象就是用于提供连接数据源的工具。datasource接口提供了两个方法用于建立和数据源的连接使用datasource对象建立和数据库的连接比起使用drivermanager接口更加高效,虽然两者的使用范围都很相似,并且都提供了方法用于建立和数据库的连接,设置连接的最大超时时间,获取流、登录。但两者之间的区别更加明显。和drivermanager不同,一个datasource对象能够识别和描述它所代表的数据源的属性,而且datasource对象的工作和jndi(javatmnaminganddirectoryinterfaceti)具有密切的关系,datasource的建立、发布、独立于应用程序的管理都依靠jndi技术。在jdbc2.0或jdbc3.0中,所有的数据库驱动程序提供商必须提供一个实现了datasource接口的类,要使用数据源必须首先在jndi中注册该数据源对象。如果在jndi中注册了数据源对象,将会比起使用drivermanager来具有两个方面的优势:首先程序不需要像使用drivermanager一样对加载的数据库驱动程序信息进行硬编码,程序员可以选择先在jndi中注册这个数据源对象,然后在程序中使用一个逻辑名称来引用它,jndi会自动根据你给出的名称找到与这个名称绑定的datasource对象。然后就可以使用这个datasource对象来建立和具体数据库的连接了。其次,使用实现了datasource接口的类所具有的第二个优势体现在连接池和分布式事务上。连接池通过对连接的复用而不是新建一个物理连接来显著地提高程序的效率。从而适用于任务繁忙、负担繁重的企业级分布式事务。*************************************************************************************二、jndi简介:*************************************************************************************jndi是用于向java程序提供目录和命名功能的api。它被设计成独立于特定的目录服务,所以各种各样的目录都可以通过相同的方式进行访问。可以简单地把jndi理解为一种将对象和名字绑定的技术,对象工厂负责生产出对象,这些对象都和惟一的名字绑定。外部程序可以通过名字来获取对某个对象的引用。在intranets(企业内部网)和internates(互联网)中目录服务(directoryservice)扮演了一个非常重要的角色,它能够在众多的用户、机器、网络、服务、应用程序中访问各种各样的信息。目录服务提供了一系列的命名措施,用人类可以理解的命名方式来刻画各种各样的实体之间的关系一个企业式计算环境(computingenvironment)通常是由若干代表不同部分的命名复合而成。比如在一个企业级环境中dns(domainnamesystem)通常被当成顶层的命名方案(top-levelnameinfacility)区分不同的部门或组织。而这些部门或组织自己又可以使用诸如ladp或nds的目录服务从用户的角度来看,这些都是由不同的命名方案构成的复合名称。url就是一个很典型的例子,它由多个命名方案构成。使用目录服务的应用程序必须支持这种复合构成方式使用目录服务api的java开发人员获得的好处不仅在于api独立于特定的目录或命名服务,而且可以通过多层的命名方案无缝访问(seamlessacess)目录对象。实际上,任何的应用程序都可以将自身的对象和特定的命名绑定起来,这种功能可以使到任何的java程序查找和获取任何类型的对象终端用户可以方便地使用逻辑名称从而轻易地在网络上查找和识别各种不同的对象,目录服务的开发人员可以使用api方便地在不同的客服端之间切换而不需要作任何更改*************************************************************************************三、数据源和连接池的关系:*************************************************************************************jdbc2.0提供了javax.sql.datasource接口,它负责建立与数据库的连接,在应用程序访问数据库时不需要编写连接数据库的代码,可以直接从数据源获得数据库连接。在datasource中事先建立了多个数据库连接,这些数据库连接保存在连接池(connectpool)中。java程序访问数据库时,只需要从连接池中取出空闲状态的数据库连接;当程序访问数据库结束,再将数据库连接放回连接池。*************************************************************************************四、数据源和jndi的关系:*************************************************************************************datasource对象是由tomcat提供的,因此不能在程序中采用创建一个实例的方式来生产datasource对象,而需要采用java的另一个技术jndi,来获得datasource对象的引用。tomcat把datasource作为一种可以配置的jndi资源来处理。生成datasource对象的工厂为org.apache.commons.dbcp.basicdatasourcefactory。在javax.naming包中提供了context接口,该接口提供了将对象和名字绑定,以及通过名字检索对象的方法。context中的主要方法有:bind(stringname,objectobject):将对象与一个名字绑定lookup(stringname):返回与指定的名字绑定的对象*************************************************************************************五、tomcat中数据源的配置:*************************************************************************************数据源的配置涉及修改server.xml和web.xml,在server.xml中加入定义数据源的元素,在web.xml加入元素,声明该web应用所引用的数据a.在server.xml中加入元素:元素用来定义jndiresource。属性描述name指定resource的jndi名字auth指定管理resource的manager,它有两个可选值:container、applicationtype指定resource所属的java类名

======================================================================

tomcat数据源配置总结

成功配置环境tomcat5.0.28+mssqlserver2000+msjdbcdriver

一、安装tomcat5.0.28

二、安装msjdbcdriver

假设安装路径是f:greenmicrosoftsqlserver2000jdbc,那么在f:greenmicrosoftsqlserver2000jdbclib下面有三个文件msbase.jar、sqlserver.jar、msutil.jar,并将此三个文件复制到%tommcat_home%commonlib目录下

三、注册jndi数据源

修改%tomcat_home%confcatalinalocalhost目录下您的应用程序对应的配置文件

如:我的一个应用webdemo.xml文件如下:

四、如果你在eclipse或jbuilder中开发的话,你需要在你的web应用程序的web-infweb.xml文件中注册数据源,文件添加如下内容:

一定注意:同时检查一下你部署到tomcat中对应的

彩色的加粗文字是添加上的,用来注册数据源的jndi,在这我注册了两个数据源,一个是oracle的,一个是mssqlserver2000的。

在做任何配置时最好不要修改tomcat服务器的任何文件,如servel.xml或web.xml文件,而所有的操作和配置都可以在你自己的应用配置文件中来完成,这样即使培植错误也不至于服务器的崩溃。

按以上步骤就可以完成数据源的配置,你可以写一些程序来测试。

用jsp来测试,index.jsp文件程序如下:

在你的浏览器中运行http://10.0.0.168:8888/webdemo/web/即可以看到结果:如下:

你看到连接成功的标志,就意味这你的数据源配置成功!!!

记住:要想配置成功,就要认真检查需要配置的每一个细节。

=======================================================================

tomcat-5.5.17连mysql5.1.11数据源的配置

以前一直用jboss连mysql,数据源配置一直很顺利,现在需要用tomcat了,可是配数据源总是出不来,郁闷了半天,借鉴了网上朋友的经验终于出来了,现在这里总结一下配置过程:

项目名称为dbtest。

一、给项目配置一个数据源。方法一

1.d:tomcat-5.5.17confcatalinalocalhost目录下新建文件dbtest.xml,内容如下:

2.dbtestweb-infweb.xml内容如下:

3.测试用的index.jsp,内容如下

启动tomcat,在ie中输入http://localhost:8080/dbtest,显示出datasource和conn对象,说明配置成功。

方法二

把dbtest.xml文件改名为context.xml,放到项目dbtestmeta-inf目录下。其他配置和方法一完全一致。

方法三

把dbtest.xml文件的内容放到d:tomcat-5.5.17confserver.xml中去,放在的前面。其他配置和方法一完全一致。

二、给项目配置2个数据源。这里只介绍与上面方法二种对应的方法,其他两种方法类似

1.context.xml放到项目dbtestmeta-inf目录下,内容如下(注意根据自身情况修改下面的用户名和密码):

2.web.xml放到项目dbtestweb-inf目录下,内容如下:

3.测试用的index.jsp,内容如下:

启动mysql和tomcat后,运行结果显示如下

datasource=org.apache.tomcat.dbcp.dbcp.basicdatasource@e753conn=org.apache.tomcat.dbcp.dbcp.poolableconnection@18c3679datasource2=org.apache.tomcat.dbcp.dbcp.basicdatasource@4c47dbconn2=org.apache.tomcat.dbcp.dbcp.poolableconnection@16be68f

下一篇: Javaweb基础知识
相关文章
{{ v.title }}
{{ v.description||(cleanHtml(v.content)).substr(0,100)+'···' }}
你可能感兴趣
推荐阅读 更多>
推荐商标

{{ v.name }}

{{ v.cls }}类

立即购买 联系客服