软件开发工程师(JAVA)中级考试大纲之--五 J2EE WEB高级组件开发--(三)Tomcat服务器的环境及配置;应用发布和数据源配置;

首先定义tomcat6的安装根目录为 ${CATALINA_HOME}

在tomcat6版本中,context元素已经从server.xml文件中独立出来了,放在一个context.xml文件中。因为server.xml是不可动态重加载的资源,服务器一旦启动了以后,要修改这个文件,就得重启服务器才能重新加载。而context.xml文件则不然,tomcat服务器会定时去扫描这个文件。一旦发现文件被修改(时间戳改变了),就会自动重新加载这个文件,而不需要重启服务器。我们当然推荐把应用需要的JNDI资源配置在context.xml文件中,而不是server.xml文件中。

由于context元素的可用范围是可以控制的,我们可以根据需要为Context元素定义不同级别的可用范围。

一. 全局可用
全局可用的范围意味着tomcat服务器下面的所有应用都可以使用这个context元素定义的资源。

全局可用范围的context元素在文件 ${CATALINA_HOME}/conf/context.xml 文件中描述。这个文件在tomcat刚刚被安装的时候,是没有定义任何资源的。我们可以看到,这个文件的内容:
<Context>
    <WatchedResource>WEB-INF/web.xml</WatchedResource>

Context>

其中的 <watchedresource></watchedresource>WEB-INF/web.xml表示服务器会监视应用的WEB-INF/web.xml 文件来知道那个应用会引用在此处定义的资源。

二. 指定的虚拟主机可用
指定的虚拟主机可用就是说,在tomcat服务器配置的虚拟主机中,只有指定的那个虚拟主机上跑的应用才能使用。要配置一个虚拟主机可用的context资源,可以在${CATALINA_HOME}/conf/目录下的文件 ${enginename}/${hostname}/context.xml.default 中表述。

比如,一般一个tomcat服务器安装好了以后,都有一个默认的叫做 Catalina 的引擎,在这个引擎下有一个叫做 localhost 的虚拟主机。我们的应用一般都放在这个虚拟主机下。那么,如果我们想要配置一个在 Catalina/localhost 虚拟主机下都可以使用的资源,我们需要在目录 ${CATALINA_HOME}/conf 下建立路径 Catalina/localhost,在这个路径下创建文件 context.xml.default。全路径是 ${CATALINA_HOME}/conf/Catalina/localhost/context.xml.default


三. 指定的应用可用
顾名思义,一个指定的应用可用的context元素,意味着这是一个只有指定的引擎,指定的虚拟主机,指定的应用才可以使用的context元素。

如果我们用appname来代表这个指定的这个指定的应用的名字,那么元素的定义应该被放置在 ${CATALINA_HOME}/conf/${enginename}/${hostname}/${appname}.xml文件中。

例如,假设在localhost下我们有一个web应用叫做webtest,那么我们应该创建文件 ${CATALINA_HOME}/conf/Catalina/localhost/webtest.xml。


Tomcat6.0数据源配置
方法一:
1.配置tomcat下的conf下的context.xml文件,在之间添加连接池配置:
<Resource name="jdbc/mydb"
       auth="Container"
       type="javax.sql.DataSource"
       driverClassName="oracle.jdbc.driver.OracleDriver"
       url="jdbc:oracle:thin:@localhost:1521:mydb"
       username="bmgis"
       password="bmgis"
       maxActive="100"
       maxIdle="30"
       maxWait="10000" />
2.配置你的应用下的web.xml中的之间加入:
<resource-ref>
    <description>DB Connection</description>
    <res-ref-name>jdbc/mydb</res-ref-name>
    <res-type>javax.sql.DataSource</res-type>
    <res-auth>Container</res-auth>
</resource-ref>
在以往的tomcat当中还需要在web.xml指定相应的resource,在tomcat 5.5以后的版本不写也可以,但建议还是配置。

3.把连接数据库的第三方驱动放到${CATALINA_HOME}/lib下面就ok了
4.测试程序test.jsp如下:
<%@ page import="javax.naming.*"%>
<%@ page import="java.sql.*"%>
<%@ page import="javax.sql.*"%>
<%
Context initContext = new InitialContext();
Context envContext  = (Context)initContext.lookup("java:/comp/env");
DataSource ds = (DataSource)envContext.lookup("jdbc/myoracle");
Connection conn = ds.getConnection();
conn.close();
%>

 

方法二:
我们只需要在WebRoot目录下,新建一个META-INF的目录(假如不存在,注意目录名称大写),
在该目录下创建一个context.xml文件,并且在context.xml文件当添加以下的配置信息:
<Context>
 <Resource name="jdbc/mydb"
       auth="Container"
       type="javax.sql.DataSource"
       driverClassName="oracle.jdbc.driver.OracleDriver"
       url="jdbc:oracle:thin:@localhost:1521:mydb"
       username="bmgis"
       password="bmgis"
       maxActive="100"
       maxIdle="30"
       maxWait="10000"
    logAbandoned="true" />
</Context>
其中:
name 表示指定的jndi名称
auth 表示认证方式,一般为Container
type 表示数据源床型,使用标准的javax.sql.DataSource
maxActive 表示连接池当中最大的数据库连接
maxIdle 表示最大的空闲连接数
maxWait 当池的数据库连接已经被占用的时候,最大等待时间
logAbandoned 表示被丢弃的数据库连接是否做记录,以便跟踪
username 表示数据库用户名
password 表示数据库用户的密码
driverClassName 表示JDBC DRIVER
url 表示数据库URL地址

此方法二一样适用Tomcat5.5

 

Tomcat5.5x数据源配置

方式一、全局数据库连接池
1、通过管理界面配置连接池,或者直接在${CATALINA_HOME}/conf/server.xml的GlobalNamingResources中增加
<Resource name="jdbc/mydb" type="javax.sql.DataSource"
 username="bmgis" password="bmgis"
 driverClassName="oracle.jdbc.driver.OracleDriver"
 url="jdbc:oracle:thin:@localhost:1521:mydb"
 maxIdle="2" maxWait="5000" maxActive="4"/>
2、在${CATALINA_HOME}/webapps/myapp/META-INF/context.xml的Context中增加:
<ResourceLink global="jdbc/mydb" name="jdbc/mydb" type="javax.sql.DataSource"/>
这样就可以了。

方式二、全局数据库连接池
1、同上
2、在${CATALINA_HOME}/conf/context.xml的Context中增加:
<ResourceLink global="jdbc/mydb" name="jdbc/mydb" type="javax.sql.DataSource"/>
方式三、局部数据库连接池
只需在${CATALINA_HOME}/webapps/myapps/META-INF/context.xml的Context中增加:
<Resource name="jdbc/mydb" type="javax.sql.DataSource"
 username="bmgis" password="bmgis"
 url="jdbc:oracle:thin:@localhost:1521:mydb"
 driverClassName="com.microsoft.jdbc.sqlserver.SQLServerDriver"
 maxIdle="2" maxWait="5000" maxActive="4"/>


扩展 Tomcat虚拟主机的配置 

虚拟主机是使用特殊的软硬件技术,把一台计算机主机分成一台台虚拟的主机,每一台虚拟主机都具有独立的域名和 IP 地址(或共享的 IP 地址)有完整的 Internet 服务器(WWWFTPEmail等)功能。利用虚拟主机技术,每一台虚拟主机和一台独立的主机完全一样,每一台虚拟主机都具有独立的域名,具有完整 Internet 服务器功能。

Tomcat 支持虚拟主机技术,不需要额外的插件,而且配置简单。


一 准备

我们将配置两台虚拟主机,假设域名分别为
  www.sentom1.net
  www.sentom2.net
为了测试方便,请在客户机的:
  Win2K:\\WINNT\system32\drivers\etc\hosts
  Linux:/etc/hosts
文件中增加下面内容,然后检查一下这两个域名是否解析正确。
 192.168.0.1 www.sentom1.net
 192.168.0.1 www.sentom2.net
当然,在生产环境中这样做是不行的,需要的在 DNS 上做相应的域名解析。

二 Tomcat安装

Tomcat的安装不在本文的讨论范围。请确保Tomcat安装正确,不然请不要继续进行下面的配置步骤。

将 tomcat 目录下的 webapps 目录在同一目录复制一份,目录名分为 webapps2 ,然后将 webapps 目录改名为 webapps1 。最后 tomcat 的目录结构大致如下:

 tomcat
 |--bin
 |--common
 |--conf
 |--logs
 |--server
 |--shared ......
 |--webpapps1
 |--webpapps2
 |--work

最后,写一个简单 html 文件用于测试,文件名为 test.html ,文件内容如下:你现在访问的是 www.sentom1.net
将 test.html 文件分别在 tomcat/webapps1/ROOTtomcat/webapps2/ROOT 目录放置一份,然后将 tomcat/webapps2/ROOT/test.html 文件内容中www.sentom1.net改为www.sentom2.net

至此,前期的准备工作做完了。

三 配置虚拟主机

前面提到了独立 IP 和共享的 IP。本文介绍的是共享的 IP 模式,这种模式就是所有的虚拟主机都使用同一IP 。目前国内IDC 提供的虚拟主机都是这种模式。这种模式的优点是节约数量有限的IP ,缺点就是虚拟主机只能通过域名访问而不能通过IP 访问(其实也不算是缺点,只对邮件系统中用户的访问方式有一点点影响 )。而另外一种独立 IP 模式主要应用在邮件服务中,这里就不做介绍了。

配置 www.sentom1.net 虚拟主机

打开 tomcat/conf/server.xml 文件,将 Host 元素之间的内容全部删掉,然后把下面内容加如到 Host 元素原来的位置。

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。