Tomcat中的catalina.bat原理详细解析

前言

本文主要给大家详细解析了关于Tomcat中catalina.bat原理的相关内容,分享出来供大家参考学习,下面话不多说了,来一起看看详细的介绍吧。

tomcat 的真正启动是在 catalina.bat 设置并启动的。startup.bat 只是找到catalina.bat 然后执行catalina.bat 来启动tomat的。下面我们来分析下catalina.bat

验证CATALINA_HOME 环境变量

  • 验证CATALINA_HOME 设置是否正确,如果不正确,重新设置CATALINA_HOME 环境变量。
  • 如果在CATALINA_HOME\bin目录下找不到catalina.bat,则结束(这里基本不会出现这种情况的,除非catalina.bat 没在tomcat的bin目录下)

设置环境变量

1. 在 CATALINA_BASE 和 CATALINA_BASE 目录下查找 setenv.bat 文件并执行,找不到则不执行。

2. 查找 setclasspath.bat 文件,并执行,找不到则结束

setclasspath.bat 设置java相关的环境变量。

tomcat 日志管理

把tomcat-juli.jar 添加到classPath环境变量中。
并把日志的配置文件路径添加到 LOGGING_CONFIG 环境变量

tomcat-juli.jar 作用

Apache Tomcat由一个自己的实现了java.util.logging多个关键元素的实现。这个实现被称为JULI。实现的核心组件是定制化的LogManager,可以获取运行在Tomcat中的不同web应用(以及不同的class loader)。他支持为应用配置单独的日志配置。当有web应用从内在中是被卸载时,会接到Tomcat的通知,以便他所引用的类可以被清除,避免内存泄露。

控制台信息输出

输出如下:

设置tomcat的启动类

设置 tomcat 远程调试相关参数

开启远程调试功能后,eclipse 中配置 Host 和 Port 然后Debug 就可以远程调试tomcat中的程序了。

其它启动模式

除了远程调试启动模式,还有如下几种启动模式

从这可以看出,启动tomcat、关闭tomcat都是调用的catalina.bat。

run和start 的区别是,是否在新窗口启动tomcat。

run是在本窗口中执行。

start是新开一个窗口执行。

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流,谢谢大家对我们的支持。

时间: 2017-08-29

Centos7.3下Tomcat8的安装配置教程

本文为大家分享了Centos7.3安装和配置Tomcat8教程,供大家参考,具体内容如下 第一步:下载Tomcat8压缩包 进入http://tomcat.apache.org/download-80.cgi 下载tar.gz压缩包 第二步:用ftp工具把压缩包上传到/home/data/下 第三步:解压以及新建目录 [root@localhost ~]# ls /home/data/ apache-tomcat-8.5.16.tar.gz server-jre-8u131-linux-x64.

maven自动部署到远程tomcat服务器的方法

使用maven的自动部署功能可以很方便的将maven工程自动部署到远程tomcat服务器,节省了大量时间. 本文章适用于tomcat的7.x ,8.x, 9.x版本. 下面是自动部的步骤 1,首先,配置tomcat的manager 编辑远程tomcat服务器下的conf/tomcat-users.xml,在末尾增加(其实只要拉到文件末尾,去掉注释改一下就可以了) <role rolename="manager-gui"/> <role rolename="m

Tomcat中的startup.bat原理详细解析

前言 在刚开始接触计算机,一开始就是win2000,所以对批处理脚本命令都不会.平时启TOMCAT都是鼠标双击startup.bat了,很少看过里面写的是什么,也借学习TOMCAT的机会学习一下批处理的常用命令,不求都记住,但求以后再见到批处理命令能看的懂,说的出是干什么的.本文主要给大家介绍了关于Tomcat中startup.bat原理的相关内容,下面话不多说了,来一起看看详细的介绍吧. startup.bat 解析 验证CATALINA_HOME 环境变量是否设置,如果没有设置则通过CATA

tomcat共享多个web应用会话的实现方法

tomcat共享多个web应用会话的实现方法 问题 今天有位朋友问了个问题,大致是:tomcat下两个Java web,一个是商城,一个是直播,从商城登录后,再跳转到直播,发现处于非登录状态. 解决思路 将session抽出来成一个session服务,统一通过该服务操作session. tomcat内部用会话管理器获取会话时遍历所有context内的会话. 方案1 重写获取session方法即可. 方案2 找了源码发现已经支持类似遍历所有context内的会话的形式,首先获取session时,如

Tomcat实现session共享(session 会话复制)

一.如何保持session会话 目前,为了使web能适应大规模的访问,需要实现应用的集群部署.集群最有效的方案就是负载均衡,而实现负载均衡用户每一个请求都有可能被分配到不固定的服务器上,这样我们首先要解决session的统一来保证无论用户的请求被转发到哪个服务器上都能保证用户的正常使用,即需要实现session的共享机制. 在集群系统下实现session统一的有如下几种方案: 1.请求精确定位:session sticky,例如基于访问ip的hash策略,即当前用户的请求都集中定位到一台服务器中

修改Tomcat服务器默认端口号的实现方法

修改Tomcat服务器默认端口号的实现方法 一 修改方法 修改D:\apache-tomcat-7.0.81\conf\server.xml文件如下 二 测试 如有疑问请留言或者到本站社区交流讨论,感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!

Spring Boot修改内置Tomcat默认端口号的示例

Spring Boot 内置Tomcat默认端口号为8080,在开发多个应用调试时很不方便,本文介绍了修改 Spring Boot内置Tomcat端口号的方法. 一.EmbeddedServletContainerCustomizer接口 EmbeddedServletContainerCustomizer接口提供了customize方法用来自定义servlet容器的一些属性 如图编写实现类在customize方法中可设置容器端口号为8088 . 二.TomcatEmbeddedServletC

CentOS6.5与CentOS7 ssh修改默认端口号的方法

本文实例讲述了CentOS6.5与CentOS7 ssh修改默认端口号的方法.分享给大家供大家参考,具体如下: CentOS6.5ssh修改默认端口号 先查看下服务器端口号范围: # sysctl -a|grep ip_local_port_range net.ipv4.ip_local_port_range = 32768 61000 新ssh端口号在这个范围内即可,如41134 第一步: vi /etc/sysconfig/iptables 找到现有的ssh那行,把22修改为新的SSH端口号

centos 修改ssh默认端口号的方法示例

linux服务器一般默认的ssh端口号都为22,所以在大部分的使用者手中出于安全考虑就需要修改ssh的默认端口号,下面为为修改ssh默认端口号方法 一:修改/etc/ssh/sshd_config配置文件(注意:这里是sshd_config,而不是ssh_config) 1:查看ssh的默认端口号 netstat -anp|grep ssh 2:修改/etc/ssh/sshd_config配置文件 在sshd_config文件中添加一个端口号10011(这里保留22端口,是为了放置假如配置失败的

Windows服务器修改远程桌面默认端口过程图示

这篇文章主要介绍了Windows服务器修改远程桌面默认端口过程图示,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 一.打开注册表(通过开始菜单处输入命令输入 regedit回车即可打开注册表信息,或者Win键+R键打开输入框后输入regedit后回车) 二.打开注册表后,在左侧属性菜单进入下列路径"HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\Wds\rd

JavaScript React如何修改默认端口号方法详解

问题 我们在使用React的时候经常会遇到这种情况,3000端口号被占用.有时候可以关掉3000端口,但更多时候,我们需要打开多个项目的时候,就必须要开启多个端口了.这时候就需要修改默认端口号了. 解决办法 修改默认端口号 具体做法 第一步:找到start.js文件 这个文件的位置在:node_modules文件夹下 -> react-scripts文件夹下 -> scripts文件夹下 -> start.js node_modules下 start.js文件 51行处修改,整个文件端口

ssh更改默认端口号及实现免密码远程登录

近来在复习防火墙管理工具 iptables 的基本使用方法,涉及到对端口添加或删除防火墙策略的内容,之前对ssh更改默认端口号及免密码登录的方法不熟悉,这次做一个基本的总结防止自己遗忘. 错误偏差及其他经验之处,还望各位多多支出! 系统环境:两台 RHEL 7 登录主机:master.domain12.example.com 192.168.0.150/24 远程主机:rhel.domain12.example.com 192.168.0.212/24 1. ssh更改默认端口号 rhel.do

redis中修改配置文件中的端口号 密码方法

windows中 1.找到redis文件的位置, 编辑redis.windows.conf, 将端口号改成8888 2.打开cmd, 重启启动(带配置文件的启动) 3.连接测试 liunx下 1.找到redis的安装位置,例如我的是 /usr/local/redis, 找到redis.conf 2. 查找port 修改端口号, 查找requirepass修改密码(密码修改把前面注释打开) 3.修改端口,密码 4.重启 /usr/local/redis/bin/redis-server /usr/

linux socket通讯获取本地的源端口号的实现方法

关于TCP IP网络通讯的资料非常多,TCP IP通过IP数据包模式进行端对端通讯.典型的TCP数据包如下 可以看到数据包包含了源端口号和目的端口号,客户端socket向服务端发起连接时,系统会给socket随机分配一个源端口号,我们可以通过getsocketname来获取连接成功的socket的原端口信息. 函数原型 #include <sys/socket.h> int getsockname(int sockfd, struct sockaddr *addr, socklen_t *ad

linux下查看本机和远程服务器的端口是否连通的方法

如下所示: 1.ssh -v -p [端口号] [用户名]@[IP地址] 2.curl [IP地址]:[端口号] 以上这篇linux下查看本机和远程服务器的端口是否连通的方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我们.