Tomcat各文件功能配置

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Tomcat各文件功能配置相关的知识,希望对你有一定的参考价值。

Tomcatt各配置文件功能详解:

  • catalina.properties: 该文件包括服务器共享定义,共享加载器,和JARs,服务器在启动时会扫描此文件。
  • server.xml:此文件包含重要信息,如IP地址,端口,虚拟主机和上下文路径等。
  • tomcat-user.xml: 往往认证,授权,和角色定义在该文件中进行定义,还经常存储数据库用户名、密码、角色和管理容器的安全。
  • logging.properties:定义tomcat日志的属性信息。
  • web.xml:所有web应用加载到Tomcat实例的默认值,在tomcat启动时,假如应用有它自己的部署描述符,那它自己的定义优先web.xml中的定义。
  • context.xml: 该文件的内容将会加载到第个应用中,比如配置持久连接的参数,连接追踪等。

Context 路径:

它常常被用来配置虚拟机,就是可以使得多个域名在相同的web服务器上或单一的IP。
用来配置.war文件的URL映射。

上下文路径主要带来两个好处:

  1. 可以减少服务器的负载,当服务器收到一个请深圳市时,它会检查server.xml文件中的定义URL路径,假如找到的话,使用找到的路径进行服务的响应,否则服务器将会扫描所有的WAR文件,因此,它可以减少CPU的消耗。
  2. 给了我们可以自已定义的自由,如我们可以针对不同应用定制logging,appBase,DB connection等。

使用context path有两种方式:

  1. Tomcat WEB Application Manager(具体不介绍)
  2. 在Server.xml使用命令行的配置
    命令行方式配置示例:
    <Context path="/sample" docBase="/opt/" reloadable="true" swallowOutput="true">
    <WatchedResource>WEB-INF/web.xml</WatchedResource>
    <Logger className="org.apache.catalina.logger.FileLogger" prefix="www-sample-com-log." suffix=".txt" timestamp="true"/>
    </Context>

path="/sample": 定义客户端请求服务器的URl,如:
http://localhost:8080/sample
docBase="/opt/" 定义war包所放在的路径
reloadable="true" 在不用重新启动tomcat时,可以自动加载。
swallowoutput="true": 针对system.out和system.err的日志将会重定向到应用日志中。。

应用的常见架构:

  • WEB-INF:是私有文件,不被别人访问的,主要 各个组件的组成关系等。
  • WegbApplicationName:该目录中,所有的静态文件,比如html和JSP文件,也是应用的根。
  • /WEB-INF/web.xml:包括了 web应用的部署描述符,针对应用指定的资源。
  • /WEB-INF/classes:包括了所有类文件,还有第三方的类等。
  • /WEB-INF/lib: 存放着JSP编译需要 的JAR文件。
  • web.xml:包含所有的动态文件(servlets和JSP)还有一些比如信息相关的文件,比如会话超时时间和数据库的定义 。

归档文件:

  • 一般开发给的是一个归档好的文件,该文件包括了模块的类,静态文件,目录和部署描述符文件。一般用的JAR工具创建的。
  • EJBs常被打包成.jar文件
  • WEB应用打包成.war文件
  • 资源适配器打包成.rar文件
  • 企业应用被打包成.ear文件,也可以包括EJBs,WEB应用,和资源适配器
  • WEB服务一般打包成.ear文件或者war文件。

在部署应用,配置时的常见问题及解决方法

问题1:

在部署后, 别人访问的仍是老内容,就是新内容好像没有生效
解决步骤:
查看新文件是否在部署的目录里面
检查catalina.out日志文件,查看WAR文件是有没有部署
假如前两步检查没有问题,但问题仍然存在的话,那就停止服务器,清除work/Catalina/localhost/temp文件夹中的内容。
cd /opt/apache-tomcat-8.0.12/temp/ rm -rf ../temp/
cd /opt/apache-tomcat-8.0.12/work/Catalina/localhost/ rm -rf ../localhost/

问题2:

在部署后,有些节点显示是新内容,但有些节点显示的是老内容

  1. 查看新文件是否在部署的目录里面
  2. 检查catalina.out日志文件,查看WAR文件是有没有部署
    假如前两步检查没有问题,但问题仍然存在的话,那就停止服务器,清除work/Catalina/localhost/temp文件夹中的内容。
    cd /opt/apache-tomcat-8.0.12/temp/ rm -rf ../temp/
    cd /opt/apache-tomcat-8.0.12/work/Catalina/localhost/ rm -rf ../localhost/
  3. 重新动服务器,并检查两个服务器的数据库是否一致状态。
问题3:

在改变server.xml文件后,tomcat实例无法启动
(1)进入到bin目录下
(2)运行configtst.sh,它会检查配置文件的。
org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:435)
Caused by: java.net.BindException: Address already in use
at java.net.PlainSocketImpl.socketBind(Native Method)
at java.net.PlainSocketImpl.bind(PlainSocketImpl.java:383)
at java.net.ServerSocket.bind(ServerSocket.java:328)
at java.net.ServerSocket.<init>(ServerSocket.java:194)

上面的显示信息意味着已经运行了,那就停止服务器清除temp文件夹下的内容。然后重新启动服务器。

以上是关于Tomcat各文件功能配置的主要内容,如果未能解决你的问题,请参考以下文章

Tomcat中server.xml文件内各节点详解

Tomcat 多实例及动静分离配置

Tomcat 多实例部署

tomcat的负载均衡 动静分离

Tomcat系列之服务器的安装与配置以及各组件详解

Tomcat启动时出现异常,是啥原因?