1.Tomcat 6多应用的Context配置
tomcat 5,6关于context的配置不同于tomcat 4,不推荐在server.xml中进行配置,在context.xml文件中进行配置才是更好的方法。回想以前所有的项目都是在server.xml中配置context的,每次部署一个新的应用或者修改context内容都要重新启动tomcat,导致应用总是要中断服务一小段时间,比较不方便,而且多个context都在server.xml中,显得有些杂乱。于是决定使用在context.xml中进行配置应用的方式。在tomcat_home\conf目录下有一个context..xml文件,修改其中内容之后,tomcat 能够自动reload所有的应用。
但是tomcat是不支持在一个context.xml中配置多个不同应用的。在项目工程用下面的META-INF文件夹下建立context.xml文件就可以满足应用的定制需求。具体路径就是:tomcat_home\webapps\yourApp\META-INF\context.xml,这样每个应用都可以拥有各自的配置,修改了该文件中的内容,tomcat可以自动重新装载该应用,非常的方便。下面是一个可以自动重新装载servlet和javabean(方便debug),带有数据库连接池(以Oracle为例)的context.xml文件内容:
<?xml version="1.0" encoding="UTF-8"?>
<Context reloadable="true" crossContext="true">
<!-- Default set of monitored resources -->
<WatchedResource>WEB-INF/web.xml</WatchedResource>
<!-- Uncomment this to disable session persistence across Tomcat restarts -->
<!--
<Manager pathname="" />
-->
<Resource name="jdbc/myoracle" auth="Container"
type="javax.sql.DataSource"
driverClassName="oracle.jdbc.OracleDriver"
url="jdbc:oracle:thin:@127.0.0.1:1521:mysid"
username="scott"
password="tiger"
maxActive="20"
maxIdle="10"
maxWait="-1"/>
<Logger className="org.apache.catalina.logger.FileLogger"
prefix="localhost_DBTest_log." suffix=".txt" timestamp="true" />
<Valve className="org.apache.catalina.valves.AccessLogValve"
prefix="localhost_access_log." suffix=".txt" pattern="common" />
</Context>
2.热部署
1.找到 server.xml,这个文件在 %catalina_home%\conf下
2.再找到文件:
<Host><Context path="\" docBase="D:\Workspace6.6\Mywork\WebRoot" reloadable="true" ></Context></host>
3.保存重启
3.APR
许多朋友可能在启动tomcat的时候都会看到类似这样的信息:
- org.apache.catalina.core.AprLifecycleListenerinit
- 信息:TheApacheTomcatNativelibrarywhichallowsoptimalperformanceinproductionenvironmentswasnotfoundonthejava.library.path:C:\Java\jre\bin;.;C:\WINDOWS\Sun\Java\bin;C:\WINDOWS\system32;C:\WINDOWS
org.apache.catalina.core.AprLifecycleListener init
信息: The Apache Tomcat Native library which allows optimal performance in production environments was not found on the java.library.path: C:\Java\jre\bin;.;C:\WINDOWS\Sun\Java\bin;C:\WINDOWS\system32;C:\WINDOWS
出现这种情况是这表示没有找到APR
使用APR提高Tomcat性能
Tomcat可以使用APR来提供超强的可伸缩性和性能,更好地集成本地服务器技术.
APR(Apache Portable Runtime)是一个高可移植库,它是Apache HTTP Server 2.x的核心。APR有很多用途,包括访问高级IO功能(例如sendfile,epoll和OpenSSL),OS级别功能(随机数生成,系统状态等等),本地进程管理(共享内存,NT管道和UNIX sockets)。这些功能可以使Tomcat作为一个通常的前台WEB服务器,能更好地和其它本地web技术集成,总体上让Java更有效率作为一个高性能web服务器平台而不是简单作为后台容器。
在产品环境中,特别是直接使用Tomcat做WEB服务器的时候,应该使用Tomcat Native来提高其性能
要测APR给tomcat带来的好处最好的方法是在慢速网络上(模拟Internet),将Tomcat线程数开到300以上的水平,然后模拟一大堆并发请求。如果不配APR,基本上300个线程狠快就会用满,以后的请求就只好等待。但是配上APR之后,并发的线程数量明显下降,从原来的300可能会马上下降到只有几十,新的请求会毫无阻塞的进来。
在局域网环境测,就算是400个并发,也是一瞬间就处理/传输完毕,但是在真实的Internet环境下,页面处理时间只占0.1%都不到,绝大部分时间都用来页面传输。如果不用APR,一个线程同一时间只能处理一个用户,势必会造成阻塞。所以生产环境下用apr是非常必要的。
简要解决办法:去 http://tomcat.heanet.ie/native/ 下载编译好的tcnative-1.dll文件,目前最新为1.1.14,拷贝至jdk\bin下,再启动就可以成功加载APR了。
- org.apache.catalina.core.AprLifecycleListenerinit
- 信息:LoadedApacheTomcatNativelibrary1.1.14.
- org.apache.catalina.core.AprLifecycleListenerinit
- 信息:APRcapabilities:IPv6[false],sendfile[true],acceptfilters[false],random[true].
org.apache.catalina.core.AprLifecycleListener init
信息: Loaded Apache Tomcat Native library 1.1.14.
org.apache.catalina.core.AprLifecycleListener init
信息: APR capabilities: IPv6 [false], sendfile [true], accept filters [false], random [true].
4.URIEncoding
有时候在做开发的时候经常发现文本框输入的中文到了程序中成了乱码,其实是因为在端口监听部分缺少编码。
URIEncoding="UTF-8"
解决方法如下:
原始部分
8080端口上
-
<Connectorport="8080"protocol="HTTP/1.1"
-
connectionTimeout="20000"
-
redirectPort="8443"/>
<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" />
修改后
-
<Connectorport="8080"protocol="HTTP/1.1"
-
connectionTimeout="20000"
-
redirectPort="8443"URIEncoding="UTF-8"/>
<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" URIEncoding="UTF-8" />
8009端口 ajp跳转服务上,关于这个端口在apache http 做跳转时,要相当注意
-
<Connectorport="8009"protocol="AJP/1.3"redirectPort="8443"/>
<Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />
修改后
-
<Connectorport="8009"protocol="AJP/1.3"redirectPort="8443"URIEncoding="UTF-8"/>
<Connector port="8009" protocol="AJP/1.3" redirectPort="8443" URIEncoding="UTF-8" />
这样,服务器得到的中文字符就不会再有乱码了。
5.设置Tomcat管理员账号
修改tomcat-users.xml文件,在</tomcat-users>的标签前添加一行
-
<userusername="tomcat"password="tomcat"roles="admin,manager"/>
<user username="tomcat" password="tomcat" roles="admin,manager"/>
让tomcat用户拥有管理员权限。
6.设置SSL
首先,我们要创建密钥:
- keytool-genkey-aliastomcat-keyalgRSA
keytool -genkey -alias tomcat -keyalg RSA
此时,用户主目录下会生成一个.keystore文件。
然后,我们配置server.xml文件,找到SSLEnabled="true"所在的标签,将其解除注释,同时填补两个属性:
1.keystoreFile="C:/Users/Zlex/.keystore"
2.keystorePass="123456"
keystoreFile 指的是你的密钥文件存储的路径,keystorePass指的是你的密码。
举例如下:
- <!--
- DefineaSSLHTTP/1.1Connectoronport8443Thisconnectorusesthe
- JSSEconfiguration,whenusingAPR,theconnectorshouldbeusingthe
- OpenSSLstyleconfigurationdescribedintheAPRdocumentation
- -->
-
-
<Connector
-
SSLEnabled="true"
-
clientAuth="false"
-
keystoreFile="C:/Users/Zlex/.keystore"
-
keystorePass="123456"
-
maxThreads="150"
-
port="8443"
-
protocol="HTTP/1.1"
-
scheme="https"
-
secure="true"
-
sslProtocol="TLS"/>
<!--
Define a SSL HTTP/1.1 Connector on port 8443 This connector uses the
JSSE configuration, when using APR, the connector should be using the
OpenSSL style configuration described in the APR documentation
-->
<!-- -->
<Connector
SSLEnabled="true"
clientAuth="false"
keystoreFile="C:/Users/Zlex/.keystore"
keystorePass="123456"
maxThreads="150"
port="8443"
protocol="HTTP/1.1"
scheme="https"
secure="true"
sslProtocol="TLS" />
最后,重启tomcat,在地址栏中访问 https://localhost:8443/。
将上述port="8443"配置改为port="443",可以通过https://localhost/直接访问
7.在一台机器上同时启动2个tomcat
1.特别要注意:不要设置CATALINA_HOME
2.分别修改安装目录下的conf子目录中的server.xml文件:
a.修改http访问端口(默认为8080端口),将8080修改为tomcat不在使用的端口号。此处所设的端口号即是以后访问web时所用的端口号。
b.修改Shutdown端口(默认为8005端口),将8005修改为没有在使用的端口号,例如8055。
c.修改8009端口,将8009修改为没有在使用的端口号,例如8099
(注意:两个文件中对应的端口号要不一样)
3.依次启动两个tomcat。
版本最好不要一样
也就是修改server.xml
把共用的端口分开就行了
分享到:
相关推荐
总结而言,"Tomcat6.0的安装版"是提供给用户的一个包含了所有必要组件的包,使得用户能够便捷地在本地设置和运行Java Web应用程序。了解并掌握Tomcat的安装和配置对于开发者和系统管理员来说是至关重要的,因为它是...
### TOMCAT 6.0 配置详解 #### 一、前言 随着Java技术的广泛应用,Apache Tomcat作为一款轻量级的Web服务器,在Java Web应用开发领域扮演着极其重要的角色。对于初学者而言,了解如何正确安装与配置Tomcat 6.0是...
总结来说,Apache Tomcat 6.0是一款强大的Java Web应用服务器,支持最新的Servlet和JSP规范,提供了易用的配置、高性能、热部署以及安全特性。它不仅是开发人员的得力工具,也是生产环境中可靠的服务器选择。尽管...
总结来说,安装和配置 JDK6.0 和 Tomcat6.0 主要涉及下载安装、环境变量配置、应用部署和运行验证。调试 JSP 和 Servlet 需要编写源代码、编译、部署以及通过浏览器访问测试。这个过程对于理解和实践 Java Web 开发...
总结来说,"解压版Tomcat6.0"是一个轻量级的Java Web服务器,提供了一个简单易用的部署方式,可以在单个机器上运行多个实例,并且遵循Java EE 5规范,具备良好的性能、安全性和可管理性。通过解压缩提供的文件,用户...
总结,Tomcat 6.0是一个强大且灵活的Java Web服务器,其安装和配置过程相对简单。理解并掌握这些步骤将帮助你更好地管理和维护基于Tomcat的应用程序。随着技术的不断发展,建议升级到更现代的Tomcat版本以获得更好的...
总结,Tomcat 6.0解压版为初学者提供了便捷的入门途径,通过理解其基本概念、配置方式和应用部署,可以快速掌握Java Web开发的基础。在实践中不断探索和优化,将有助于提升开发和运维的技能。记住,实践是最好的老师...
通过本文详细介绍,我们不仅了解了Eclipse JEE Luna SR2版本的基本功能和特性,还学会了如何配置Eclipse支持JDK 1.7及以上版本,并成功集成了Tomcat 6.0及以上版本,最后还介绍了基本的Web开发流程以及解决常见问题...
总结来说,Tomcat 6.0作为一款经典的Java Web服务器,不仅提供了基础的Servlet和JSP服务,还具有丰富的配置选项和扩展能力,使其成为开发和部署Java Web应用的重要平台。然而,由于其已不再维护,对于新项目,推荐...
Apache Tomcat 6.0是Java Servlet和JavaServer Pages(JSP)技术的开源Web应用服务器,由Apache软件基金会开发并维护。这个版本是Tomcat系列的一个重要里程碑,提供了对Servlet 2.5和JSP 2.1规范的支持。在部署项目...
解压版的Tomcat6.0是不包含安装过程的版本,用户可以直接在本地磁盘解压缩后进行配置和运行,这对于快速搭建开发环境或测试环境尤为方便。本文将全面介绍解压版Tomcat6.0的部署、配置以及性能优化。 一、部署Tomcat...
### Tomcat 6.0 配置详解 #### 一、前言 Apache Tomcat 是一个免费开源的轻量级Web应用服务器,主要用于部署Java Web应用程序。Tomcat 6.0作为一款成熟稳定的版本,虽然已经较为老旧,但在学习和某些特定场景下仍有...
这个压缩包中的“tomcat6.0+memcached依赖jar包”很可能包含了spymemcached以及其他可能的依赖,比如网络连接库、序列化库等。 集成步骤大致如下: 1. **下载并解压**:首先,下载这个名为“tomcat6.0+memcached...
总结来说,解决“Target runtime Apache Tomcat 6.0 is not defined”的关键在于理解Eclipse项目配置文件的结构,以及如何调整这些配置来适应缺少的运行时环境。同时,保持Eclipse环境与项目所需服务器版本的一致性...
【标题】:“Tomcat 6.0 和 7.0...总结,从Tomcat 6.0升级到7.0涉及到的主要变化是Servlet和JSP规范的更新,带来了更强大的功能和更好的性能。同时,升级过程中需要仔细处理配置迁移和应用兼容性,确保系统的平稳过渡。
- 添加环境变量CATALINA_HOME,值为`C:\Program Files\Apache Software Foundation\Tomcat6.0` - 添加环境变量CATALINA_BASE,值为`C:\Program Files\Apache Software Foundation\Tomcat6.0` **验证步骤** 1. 启动...
总结来说,这个解压版包含的Tomcat 5.5和6.0版本为用户提供了方便的Java Web应用部署环境,它们各自支持不同的Servlet和JSP规范,且具有一定的性能优化和安全管理特性。用户可以根据自己的需求选择适合的版本,快速...