中间件培训tomcatTAS.docx
- 文档编号:28214801
- 上传时间:2023-07-09
- 格式:DOCX
- 页数:97
- 大小:823.91KB
中间件培训tomcatTAS.docx
《中间件培训tomcatTAS.docx》由会员分享,可在线阅读,更多相关《中间件培训tomcatTAS.docx(97页珍藏版)》请在冰豆网上搜索。
中间件培训tomcatTAS
中间件培训
——Tomcat、TAS
1中间件概念
位于平台(硬件和操作系统)和应用之间的通用服务,如下图所示,这些服务具有标准的程序接口和协议。
针对不同的操作系统和硬件平台,它们可以有符合接口和协议规范的多种实现。
2中间件应具有如下的一些特点
●满足大量应用的需要
●运行于多种硬件和OS平台
●支持分布计算,提供跨网络、硬件和OS平台的透明性的应用或服务的交互
●支持标准的协议
●支持标准的接口
3主流产品简介
Tomcat
Tomcat在严格意义上讲并不是一个真正的应用服务器,它只是一个可以支持运行Serlvet/JSP的Web容器,不过Tomcat也扩展了一些应用服务器的功能,如JNDI,数据库连接池,用户事务处理等等。
Tomcat是Apache组织下Jakarta项目下的一个子项目,目前Tomcat被非常广泛的应用在中小规模的JavaWeb应用中
TAS
TAS全称为thunisoftapplicationserver(紫光华宇应用服务器),是一个自主开发的企业级中间件产品。
其支持servlet2.5和jsp2.1规范,同时具有强大的管理功能。
TAS管理控制台可以通过浏览器访问,在控制台中可以可视化的发布标准的war包应用程序、配置数据源、修改服务器配置、维护用户列表、管理集群等。
TAS包含两个子产品,分别是TAS服务器和TAS负载均衡器。
TAS服务器是一个用于运行应用程序的独立服务器。
TAS负载均衡器简称TASLB,是TAS集群的控制中枢,TASLB对外提供统一的访问接口,并转发请求到集群中的TAS服务器。
BEAWeblogic
BEAWebLogicEnterprise是高可伸缩、高可用、支持企业Java标准和CORBA且具有主机互操作性的企业应用服务器,是运行关键任务Web应用的扩展型WebLogic组件中间件系列的旗舰产品。
BEAWebLogicEnterprise能够帮助大型企业将其Web和Java应用与现有台式机应用、企业数据和原有系统集成起来。
IBMWebSphereApplicationServer
IBMWebSphereApplicationServer是一个完善的、开放的Web应用服务器。
它是IBM电子商务应用架构的核心。
WebSphere应用服务器严格地遵循普遍流行的开放标准,如HTTP、HTML、JSP、JNDI和IIOP。
SybaseEnterpriseApplicationServer
SybaseEnterpriseApplicationServer(EAServer)是SybaseInternet应用开发包EnterpriseApplicationStudio中的重要组成部分,它将Sybase的组件事务处理服务器JaguarCTS和Web应用服务器PowerDynamo紧密集成并加以发展,是同时实现WebOLTP和动态信息发布的企业级应用服务器平台,并且支持所有标准的组件模型,包括JavaBeans、COM和CORBA等。
OracleApplicationServer
Oracle应用服务器提供了一个开放的标准架构,是开发部署Web上的应用的理想平台。
它的伸缩性、分布架构和高度数据库集成是支持关键事务,交易型应用的基础,通过采用Netscape和MicrosoftHTTP服务器,提供了易于使用的界面,并为Oracle方案提供了简易的升级方法。
MicrosoftTransactionServer
MicrosoftTransactionServer(MTS)2.0是WindowsNT的一个重要特性,它采用Microsoft组件对象模型(COM)技术,简化以服务器为中心的应用程序的开发和配置。
MTS2.0是在WindowsNT上构建和配置基于COM的应用程序的最简便的方法。
MTS完全分成三层结构,从表示层到应用逻辑,这使MTS开发人员在构造他们的应用程序时,就象收集一组单用户COM组件,然后在相应的层设置这些组件一样。
4Tomcat
4.1安装说明
●安装Tomcat前必须先安装JDK软件,否则无法安装成功;
●Tomcat5.5后只支持JDK1.5以上版本,Tomcat5.0以下可支持JDK1.4;
●安装Tomcat时安装目录建议不要带空格,避免应用程序处理错误;
●同一台服务器上可以安装多个Tomcat软件,但需设定不同的端口;
●绿色版无需安装,直接copy即可使用,但注意修改启动文件;
4.2目录
该目录内的文件的一般功能描述
bin
包含有Startup.bat(启动服务器)、shutdown.bat(关闭服务器)、catalina.bat(启动参数设置)文件等
conf
包含设置部署在Tomcat上的Web应用的变量的初始值的设置文件,包括server.xml(Tomcat的全局配置文件)和web.xml(为不同的Tomcat配置的web应用设置缺省值的文件)、tomcat-users.xml(tomcat管理员用户信息)
doc
包含关于Tomcat的各种各样的文档。
common
在其lib目录下,主要存放如JDBC的驱动程序及被Tomcat使用的各种各样的jar文件
logs
Tomcat的log文件:
stderr.log、stdout.log
log日志分为如下两种:
第一种是stdout.log,用于记录system.out的输出信息
第二种是errout.log,用于记录system.err的输出信息
webapps
发布的各类Web应用程序(JSP、Servlet和JavaBean等)
work
由Tomcat自动生成,这是Tomcat放置它运行期间的中间(intermediate)文件(诸如编译的JSP文件)地方。
如果当Tomcat运行时,你删除了这个目录那么将不能够执行包含JSP的页面。
4.3环境及参数配置
启动前需设置环境变量,否则报错
解决办法
4.4将Tomcat的控制台的输出定位到指定的文件中
4.4.1方法一(最简单的方法)
注意:
修改之前,请备份下面的两个文件
修改tomcat\bin中的两个文件startup.bat、catalina.bat
修改startup.bat的倒数第二行:
call"%EXECUTABLE%"start%CMD_LINE_ARGS%,为:
call"%EXECUTABLE%"run%CMD_LINE_ARGS%
修改catalina.bat中的:
doneSetArgs部分
有四句与下面的语句一样,四句都要改
将%_EXECJAVA%%JAVA_OPTS%%CATALINA_OPTS%%DEBUG_OPTS%-Xms128m-Xmx256m-Djava.endorsed.dirs="%JAVA_ENDORSED_DIRS%"-classpath"%CLASSPATH%"-Dwas40.config=%WAS40_CONFIG%-Dfile.encoding=GBK-Dcatalina.base="%CATALINA_BASE%"-Dcatalina.home="%CATALINA_HOME%"-Djava.io.tmpdir="%CATALINA_TMPDIR%"%MAINCLASS%%CMD_LINE_ARGS%%ACTION%
修改为:
%_EXECJAVA%%JAVA_OPTS%%CATALINA_OPTS%%DEBUG_OPTS%-Xms128m-Xmx256m-Djava.endorsed.dirs="%JAVA_ENDORSED_DIRS%"-classpath"%CLASSPATH%"-Dwas40.config=%WAS40_CONFIG%-Dfile.encoding=GBK-Dcatalina.base="%CATALINA_BASE%"-Dcatalina.home="%CATALINA_HOME%"-Djava.io.tmpdir="%CATALINA_TMPDIR%"%MAINCLASS%%CMD_LINE_ARGS%%ACTION%>>D:
\Tomcat\logs\stdout.log
或是查找%ACTION%
在后%ACTION%后加>>D:
\Tomcat\logs\stdout.log
或>D:
\Tomcat\logs\stdout.log
重启服务,即可
4.4.2方法二(定义变量的方法)
将Tomcat的控制台的输出定位到指定的文件中
注意:
修改之前,请备份下面的两个文件
修改tomcat\bin中的两个文件startup.bat、catalina.bat
修改startup.bat的倒数第二行:
call"%EXECUTABLE%"start%CMD_LINE_ARGS%,为:
call"%EXECUTABLE%"run%CMD_LINE_ARGS%
修改catalina.bat
查找到
setDEBUG_OPTS=
setJPDA=
增加
setACTION=start
setLOGFILE=%CATALINA_HOME%/logs/stdout.log
然后到:
doneSetArgs部分
有四句与下面的语句一样,四句都要改
将%_EXECJAVA%%JAVA_OPTS%%CATALINA_OPTS%%DEBUG_OPTS%-Xms128m-Xmx256m-Djava.endorsed.dirs="%JAVA_ENDORSED_DIRS%"-classpath"%CLASSPATH%"-Dwas40.config=%WAS40_CONFIG%-Dfile.encoding=GBK-Dcatalina.base="%CATALINA_BASE%"-Dcatalina.home="%CATALINA_HOME%"-Djava.io.tmpdir="%CATALINA_TMPDIR%"%MAINCLASS%%CMD_LINE_ARGS%%ACTION%
修改为:
%_EXECJAVA%%JAVA_OPTS%%CATALINA_OPTS%%DEBUG_OPTS%-Xms128m-Xmx256m-Djava.endorsed.dirs="%JAVA_ENDORSED_DIRS%"-classpath"%CLASSPATH%"-Dwas40.config=%WAS40_CONFIG%-Dfile.encoding=GBK-Dcatalina.base="%CATALINA_BASE%"-Dcatalina.home="%CATALINA_HOME%"-Djava.io.tmpdir="%CATALINA_TMPDIR%"%MAINCLASS%%CMD_LINE_ARGS%%ACTION%>%LOGFILE%
或是查找%ACTION%
在后%ACTION%后加>>%LOGFILE%
重启服务,即可
4.5多个tomcat在一台机器时需要修改内容
Tomcat\conf\server.xml
端口修改:
8080,8005
$tomca\bin\catalina.bat
startup.bat
设置
JAVA_HOME,及CATALINA_HOME、CATALINA_BASE
setJAVA_HOME=D:
\jdk1.5.0_22\
4.6server.xml
需要修改\conf\server.xml文件中的Connector元素,Connector表示一个到用户的联接,负责管理Tomcat的工作线程和读/写连接到不同用户的端口的请求/响应。
Connector的配置包含如下信息:
句柄类、句柄监听的TCP/IP端口、句柄服务器端口的TCP/IP的backlog。
修改后,必须重新启动Tomcat的服务器。
(可设置多个Connector监听不同端口)
port="8080"maxThreads="150"minSpareThreads="25"maxSpareThreads="75"enableLookups="false"redirectPort="8443"acceptCount="100"debug="0"connectionTimeout="20000"disableUploadTimeout="true"/> ØmaxThreads: Tomcat使用线程来处理接收的每个请求。 这个值表示Tomcat可创建的最大的线程数。 ØacceptCount: 指定当所有可以使用的处理请求的线程数都被使用时,可以放到处理队列中的请求数,超过这个数的请求将不予处理。 ØconnnectionTimeout: 网络连接超时,单位: 毫秒。 设置为0表示永不超时,这样设置有隐患的。 通常可设置为30000毫秒。 ØminSpareThreads: Tomcat初始化时创建的线程数。 ØmaxSpareThreads: 一旦创建的线程超过这个值,Tomcat就会关闭不再需要的socket线程。 ØmaxKeepAliveRequests: 保持请求数量,默认值100。 ØenableLookups: 如果为true,则可以通过调用request.getRemoteHost()进行DNS查询来得到远程客户端的实际主机名,若为false则不进行DNS查询,而是返回其ip地址其中和最大连接数相关的参数为maxThreads和acceptCount。 如果要加大并发连接数,应同时加大这两个参数。 webserver允许的最大连接数还受制于操作系统的内核参数设置,通常Windows是2000个左右,Linux是1000个左右。 serverport: 指定一个端口,这个端口负责监听关闭tomcat的请求 shutdown: 指定向端口发送的命令字符串 端口冲突解决办法 TOMCAT中IP访问限制 \vod"> allow="192.168.1.*,192.168.2.*,*"deny=""/> TomcatContext 【几个Note】 1、Tomcat配置文件server.xml区分大小写,例如docbase不会当初docBase,写错了容器会默认docBase与path的值相同,而不是docbase的值。 2、在server.xml中定义Context节点,可以覆盖webapps中的与path相同的文件夹。 3、尝试定义相同的Context的pathName会导致Tomcat无法启动 4、几个Context可以指向同一个docBase 【Context】 功能: WebApplicationArchive描述符 存在位置: $CATALINA_HOME/conf/context.xml $CATALINA_HOME/conf/[enginename]/[hostname]/*.xml $CATALINA_HOME/webbase/appDirName/META-INF/context.xml Server.xml中的Host节点内 属性: backgroundProcessorDelay className实现org.apache.catalina.Context接口 cookies是否允许cookie crossContext是否允许应用程序交互调用ServletContext.getContext() docBaseContext根目录。 override是否覆盖host的默认context配置 path应用程序的url路径。 每个host的所有app的path必须不同。 注意,这个只有在server.xml中定义context时才使用,一般通过文件名或目录名自动推断。 privileged是否允许使用containerservlets,就像managerservlet reloadable是否监测和加载/WEB-INF/classes/和/WEB-INF/lib中的类文件的更新。 wrapperClass实现org.apache.catalina.Wrapper接口的类。 allowLinking,antiJARLocking,antiResourceLocking,cacheMaxSize,cacheTTL,cachingAllowed,caseSensitive,processTlds,swallowOutput,tldNamespaceAware,tldValidation,unloadDelay,unpackWAR,useNaming,workDir 子节点: Loader类加载器。 最多一个 Managerhttp会话的创建、销毁和保持的管理类。 最多一个 Realm授权管理。 最多一个 Resources资源管理类。 最多一个 WatchedResource监控资源,字符串。 自动加载器会随时更新这个资源。 【Loader】 说明: 放在Context节点内 属性: delegatetrue表示加载前先问上级loader,同java一般模式;false,先从本loader开始尝试加载 reloadable是否监控类文件变化,实时更新加载。 【Manager】 说明: 放在Context内,管理每个webapp的http会话的创建和维持。 最好的方式是多设置几次并且进行测试,观察响应时间和内存使用情况。 在不同的机器、操作系统或虚拟机组合的情况下可能会不同,而且并不是所有人的web站点的流量都是一样的,因此没有一刀切的方案来确定线程数的值。 4.7端口冲突相关问题 日志: e: \z中间件\tomcat问题日志\吉林高院端口冲突line14951.log 内容: StandardServer.await: create[8080]: .BindException: Addressalreadyinuse: JVM_Bind 解决办法: Tomcat\conf\server.xml 备份这个文件 搜索port=“8080“或是Connector 看到 修改8080为8088或是其他 修改端口后重启服务 查看端口命令 netstat-ano>c: \netstat.log 4.8JDK内存优化 可能出现的问题: 1)日志中出现OutOfMemoryError 2)电子档案导入案件应用就down掉了 3)司法绩效不能正常采集 解决办法 当tomcat是用startup.bat方式启动时 $tomca\bin\catalina.bat setJAVA_OPTS=%JAVA_OPTS%-server–Xms800m–Xmx800m-XX: PermSize=64M-XX: MaxPermSize=128m 当tomcat是用服务方式启动时 windows服务执行的是bin\tomcat.exe.他读取注册表中的值,而不是catalina.bat的设置. 解决办法: 修改注册表HKEY_LOCAL_MACHINE\SOFTWARE\ApacheSoftwareFoundation\TomcatServiceManager\Tomcat5\Parameters\JavaOptions 原值为 -Dcatalina.home="C: \ApacheGroup\Tomcat5.0" -Djava.endorsed.dirs="C: \ApacheGroup\Tomcat5.0\common\endorsed" -Xrs 加入–Xms512m–Xmx800m 重起tomcat服务,设置生效 PermGenspace的全称是PermanentGenerationspace,是指内存的永久保存区域OutOfMemoryError: PermGenspace从表面上看就是内存益出,解决方法也一定是加大内存。 说说为什么会内存益出: 这一部分用于存放Class和Meta的信息,Class在被Load的时候被放入PermGenspace区域,它和存放Instance的Heap区域不同,GC(GarbageCollection)不会在主程序运行期对PermGenspace进行清理,所以如果你的APP会LOAD很多CLASS的话,就很可能出现PermGenspace错误。 这种错误常见在web服务器对JSP进行precompile的时候。 改正方法: -Xms256m-Xmx256m-XX: MaxNewSize=256m-XX: MaxPermSize=256m 实例,以下给出1G内存环境下javajvm的参数设置参考: JAVA_OPTS="-server-Xms800m-Xmx800m-XX: PermSize=64M-XX: MaxNewSize=256m-XX: MaxPermSize=128m-Djava.awt.headless=true" $tomca\bin\catalina.bat setJAVA_OPTS=%JAVA_OPTS%-server–Xms800m–Xmx800m-XX: PermSize=64M-XX: MaxPermSize=128m -Xms【初始化内存大小】 -Xmx【可以使用的最大内存】 要加“m”说明是MB,否则就是KB了,在启动tomcat时会报内存不足。 建议两个数值设置成一样大小且不超过可用物理内存的80% 4.9PerhapsJAVA_HOMEdoesnotpointtotheJDK的解决方法 Unabletofindajavaccompiler;PerhapsJAVA_HOMEdoesnotpointtotheJDK tomcat_home,java_home都已经添加到了环境变量里,但启动jsp的时候却出现了以下的异常 Unabletofindajavaccompiler;com.sun.tools.javac.Mainisnotontheclasspath. PerhapsJAVA_HOMEdoesnotpointtotheJDK 解决方案: 只要把JAVA_HOME/lib/tools.jar拷到TOMCAT_HOME\common\lib下,重启动Tomcat,OK 4.10修改tomcat默认界面 我在$tomcat/webapps/下建了个myjsp目录作为我网站的默认目录,在myjsp中有一个a.jsp文件,该文件要作为我网站的默认主页。 修改配置文件: 首先,修改$t
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 中间件 培训 tomcatTAS