Tomcat 5 5 JNDI Resource 配置
分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow
也欢迎大家转载本篇文章。分享知识,造福人民,实现我们中华民族伟大复兴!
Tomcat 5.5 JNDI Resource 配置
Author Blog:http://blog.csdn.net/fenglibing
该文是对Tomcat 5.5 JNDI Resource配置的翻译,文章中主要提到对<resource-ref>的配置操作,有我做一些取舍,原文的地址为:
http://tomcat.apache.org/tomcat-5.5-doc/jndi-resources-howto.html
一、简介
在Tomcat 5 中,每个WEB应用程序的初使化环境(InitialContext)可以配置于$CATALINA_HOME/conf/server.xml的<Context>节点中,也可以配置每个WEB应用程序环境(Context)于单独的XML文件中,如将每个WEB应用的配置放于$CATALINA_HOME/conf/Catalina/localhost目录下,名称可以为任意。
Tomcat 5为整个服务维护一个独立的全局资源命名空间,它们被配置于$CATALINA_HOME/conf/server.xml的<GlobalNameingResources>节点,你可以通过使用<ResourceLink>节点开放这些资源给WEB应用程序。
这些定义的资源,可以被定义于你当前的WEB应用的WEB应用布署描述(/WEB-INF/web.xml)文件中的以下节点使用:
l <env-entry> :环境实体(Environment entry),一个单值参数(a single-value parameter)可以用于配置应用程序如何操作。
l <resource-ref>:资源引用(Resource reference),典型的应用为JDBC DataSource、JavaMail Session,或者配置于Tomcat5中的自定义对象工厂。
l <resource-env-ref>:资源环境引用(Resource environment reference),增加于Servlet 2.4中的resource-ref校验,这种可以简化资源配置,不需要授权信息。
InitialContext在WEB应用程序初使化的时候就被配置了,并且可以被WEB应用程序访问(只读的方式),所有配置的实体及资源,都放于JNDI命名空间的"java:comp/env"区。因此一个典型的资源访问,这里指对JDBC DataSource的访问,就像下面这样:
//Obtain our environment naming context Context initCtx = new InitialContext(); Context envCtx = (Context) initCtx.lookup("java:comp/env"); //Look up our data source DataSource ds = (DataSource) envCtx.lookup("jdbc/EmployeeDB"); //Allocate and use a connection from the pool Connection conn = ds.getConnection(); ... use this connection to access the database ... conn.close(); |
二、配置JNDI资源
每个可访问的JNDI资源配置于<Context>节点的如下节点:
l <Environment> - 为scalar environment实体配置名称及值,这些实体通过JNDI InitialContext开发给WEB应用程序(与在WEB应用布署描述文件(/WEB-INF/web.xml)中增加<env-entry>节点配置相同)。
l <Resource> - 配置应用于WEB应用程序的资源名称及数据类型(与在WEB应用布署描述文件(/WEB-INF/web.xml)中增加<resource-ref>节点配置相同)。
l <ResourceLink> - 为定义于全局JNDI环境中的资源增加链接,这些资源链访问定义于<Server>节点下的<GlobalNamingResources>的资源。
l <Transaction> - 为在java:comp/UserTransaction中有效的初使化UserTransaction对象实例增加资源工厂。
三、TOMCAT标准资源工厂
Tomcat 5 包括一系列的标准资源工厂,它们可以为你的WEB应用程序提供服务,并且配置灵活(配置于$CATALINA_HOME/conf/server.xml),不需要修改WEB应用程序及布署描述。
注意:在标准资源工厂中,只有"JDBC Data Source"及"User Transaction"工厂可以移植到其它非TOMCAT平台,其它的标准资源工厂,包括你编写的自定义资源工厂,都只可以在TOMCAT下运行,不可以移植到其它的平台。
JDBC数据源
1、安装JDBC驱动
将JDBC驱动放于目录$CATALINA_HOME/common/lib
2、/WEB-INF/web.xml增加配置
<resource-ref> <description>JDBC数据源配置实例</description> <res-ref-name>jdbc/TestDB</res-ref-name> <res-type>javax.sql.DataSource </res-type> <res-auth>Container</res-auth> </resource-ref> |
3、配置TOMCAT资源工厂
<Context ...> ... <Resource name="jdbc/TestDB" auth="Container" type="javax.sql.DataSource" factory="org.apache.commons.dbcp.BasicDataSourceFactory" username="dbusername" password="dbpassword" driverClassName="net.sourceforge.jtds.jdbc.Driver" url="jdbc:jtds:sqlserver://testServer:1433/DB" maxActive="8" maxIdle="4"/> ... </Context> |
相关属性说明:
name:JDBC数据源的名称。
auth:
type:当前配置资源的类别。
factory:数据源工厂,默认为"org.apache.commons.dbcp.BasicDataSourceFactory"。
driverClassName - 驱动的全路径类名。
maxActive - 当前数据源支持的最大并发数。
maxIdle - 连接池中保留最大数目的闲置连接数。
maxWait - 当连接池中无连接时的最大等待毫秒数,在等当前设置时间过后还无连接则抛出异常。
username - 访问数据库的用户名
password - 访问数据库的密码
url - JDBC驱动的连接字符串
validationQuery - 在返回应用之前,用于校验当前连接是否有效的SQL语句,如果指定了,当前查询语句至少要返回一条记录。
4、实例JAVA程序
Context initCtx = new InitialContext(); Context envCtx = (Context) initCtx.lookup("java:comp/env"); DataSource ds = (DataSource) envCtx.lookup("jdbc/TestDB"); Connection conn = ds.getConnection(); ... use this connection to access the database ... conn.close(); |
JavaMail Session
Tomcat 5 包括一个标准的、用于创建javax.mail.Session session实例的资源工厂,该工厂将会自动连接配置于server.xml中的SMTP服务器。在这种情况下,具体的应用完全不用去管email服务的配置环境,只需要在需要的时候,做简单的请求、获取预配置的session。
1、安装JAR包
点击这里下载JavaMail的JAR包,JavaMail依赖于Java Activation Framework,因而也需要下载。
2、在web.xml配置
<resource-ref> <description>JavaMail配置</description> <res-ref-name>mail/Session</res-ref-name> <res-type>javax.mail.Session</res-type> <res-auth>Container</res-auth> </resource-ref> |
3、配置$CATALINA_HOME/conf/server.xml
<Context ...> ... <Resource name="mail/Session" auth="Container" type="javax.mail.Session" mail.smtp.host="localhost"/> ... </Context> |
注:默认的邮件服务端口为25,如果不是,则需要修改mail.smtp.host属性为指定的主机,如mail.smtp.host="localhost:26"。
4、JAVA示例程序
...... Context initCtx = new InitialContext(); Context envCtx = (Context) initCtx.lookup("java:comp/env"); Session session = (Session) envCtx.lookup("mail/Session"); Message message = new MimeMessage(session); message.setFrom(new InternetAddress(request.getParameter("from")); InternetAddress to[] = new InternetAddress[1]; to[0] = new InternetAddress(request.getParameter("to")); message.setRecipients(Message.RecipientType.TO, to); message.setSubject(request.getParameter("subject")); message.setContent(request.getParameter("content"), "text/plain"); Transport.send(message); ...... |
如果文章对你用,请支持万事如意网址导航。
给我老师的人工智能教程打call!http://blog.csdn.net/jiangjunshow
Tomcat 5 5 JNDI Resource 配置相关推荐
- Tomcat 6 部署工程总结,使用JNDI数据源配置
工程需要用JNDI数据源方式部署到tomcat,参考网上文章后,经过配置测试,摸索出来了. 环境说明: 数据库:Oracle9i Web服务器:tomcat-6.0.33 tomcat启动方式 ...
- Tomcat是什么:Tomcat与Java技、Tomcat与Web应用以及Tomcat基本框架及相关配置
1.Tomcat是什么 Apache Tomcat是由Apache Software Foundation(ASF)开发的一个开源Java WEB应用服务器. 类似功能的还有:Jetty ...
- 如何在Tomcat中设置JNDI数据库连接池-Spring教程示例
在Spring和Tomcat中设置JNDI数据库连接池非常容易. Tomcat服务器文档提供了有关如何在Tomcat 5.6或7中设置连接池的足够信息.在这里,我们将结合使用Tomcat 7和Spri ...
- Tomcat(一) Tomcat是什么:Tomcat与Java技术 Tomcat与Web应用 以及 Tomcat基本框架及相关配置
Tomcat(一) Tomcat是什么: Tomcat与Java技术 Tomcat与Web应用 以及 Tomcat基本框架及相关配置 Tomcat是一个被广泛使用的Java WEB应用服务器,我们有必 ...
- 关于tomcat 中的 tomcat-users.xml 配置不生效原因
安装玩tomcat,或者解压玩tomcat后,在tomcat的目录下有个conf文件夹,在这个文件夹下面有一个tomcat- users.xml的文件,这个文件里面的配置信息是当我们进入http:/ ...
- tomcat常用的优化和配置
Tomcat 5常用优化和配置 1.JDK内存优化: Tomcat默认可以使用的内存为128MB,Windows下,在文件{tomcat_home}/bin/catalina.bat,Unix下,在文 ...
- tomcat和resin的安装配置
一. tomcat安装配置 1. 什么是tomcat Tomcat就是用来解析jsp程序的一个软件 Tomcat是Apache 软件基金会(Apache Software Foundation)的Ja ...
- tomcat server.xml文件的配置解析
一直想写个tomcat server.xml文件的配置详细解析,忽然发现网上有人写的挺不错的,这里就转载 :https://www.cnblogs.com/kismetv/p/7228274.html
- Tomcat与Jre绿色环境配置(生产环境)
Tomcat与Jre绿色环境配置(生产环境) 博客分类: Apache Java jreapachetomcat Tomcat运行时需要jre的支持,一般有两种方式,一种是用jdk带的jre,另一种 ...
最新文章
- 再次召唤灵魂画手!这个AI把你信手涂鸦都变成人脸
- AJAX-nodemon自动重启工具安装
- “==“和equals的区别是什么(史上最全总结、最靠谱)
- 【模板】并查集 两种路径压缩写法(类模板和函数模板)
- php文本数据库 搜索,一个文本数据库的搜索方法_php
- Nginx不停机优雅升级
- SharePoint Server 2016 PWA(Project web app) 被变为只读模式
- pca算法介绍及java实现_PCA算法原理及实现
- java数据透视表_Java 创建 Excel 数据透视表
- duboo仿猫眼微服务架构—微服务入门
- 微信小程序(登录、分享、支付)
- 同步和异步Socket多线程编程基本模型介绍
- 2021年全球手持式工业红外线测温仪行业调研及趋势分析报告
- 教育培训行业如何做好私域运营
- [附源码]Java计算机毕业设计SSM歌唱比赛积分管理系统
- SSM疫情医院管理系统实训项目总结
- android所有需要的Demo地址
- 新近诗作 - 我在找寻什么
- html滑动验证图片,js实现移动端图片滑块验证功能
- toastr的介绍和使用
热门文章
- 曾陷“数据风暴”危机的赛默飞世尔如何化险为夷的?
- 【华为云技术分享】干货分享丨jvm系列:dump文件深度分析
- 【华为云技术分享】MongoDB经典故障系列四:调整oplog大小,引起从库宕机怎么办?
- 鲲鹏云实验-.NET Core 3.0-开始使用
- JAVA调用C语言程序
- 【java基础知识】Spring Boot启动报错com.sun.jersey.api.client.ClientHandlerException: java.net.ConnectExcepti
- ES6语法---解构赋值
- JDBC粗略学习( 阿巴阿巴阿巴阿巴)
- swt 键盘事件ctrl+c_VB键盘事件详解
- oozie mysql_【oozie】将oozie的数据库配置为mysql | 学步园