Tomcat是常用的应用服务器之一,主要用于开发和测试,也有少量用户用在生产系统中。本文总结了一些Tomcat的常见问题及处理技巧,以供参考。

​启动问题

Windows下,在启动Tomcat时经常会出现启动窗口一闪而过,启动失败的情况,而日志文件中没有任何错误提示。

此类问题多半是jvm参数或环境变量设置的问题,解决问题的关键是看到控制台输出的内容,但控制台一闪而过,不知道哪里出了问题。

Tomcat默认安装后,bin目录下的startup.bat文件最下面是这样的。

call "%EXECUTABLE%" start %CMD_LINE_ARGS%,这个命令执行时,会另启动一个窗口,将start改成run后,启动过程只有一个窗口,所有日志都在这一个窗口中输出了。

做了这个修改之后,就可以开启一个cmd窗口,然后进入到bin目录下,直接输入starup.bat后,cmd窗口就会出现启动的日志输出了,有什么错误一目了然。如下图所示:

​Linux/unix/aix下的Tomcat启动,不会出现上面的问题,因为控制台日志直接写到了日志文件中,例如:/opt/tomcat/tomat/logs/catalina.out。

日志问题

Windows下,Tomcat的日志是输出在控制台上,这对于长期运行的生产系统来说是不合适的,因为很多日志都被覆盖,查找问题时也不方便。可以通过下面的方法将控制台日志输出到文件中

直接修改bin下的startup.bat,将最后一行修改如下:

call "%EXECUTABLE%" run %CMD_LINE_ARGS% >> catalina.%date:~0,10%.out

按照上面的方法,Tomcat启动后,会在bin目录下生成2021-11-08.out之类的文件,文件名以当前日期取名,如果一天内启动多次,会以追加的方式写到同一文件中。

内存问题

Tomcat设置jvm内存大小,相信大家都会,但在实际运用时,经常会出现明明设置了内存参数,但是系统还是启动不起来,报内存溢出错误。

Tomcat有很多设置jvm参数的方法,可以修改catalina.bat命令文件,也可以设置环境变量JAVA_OPTS,实际当中可能设置了多处,最终到底哪个生效了,自己都弄糊涂了。

对于这种问题,只要做个简单的测试就清楚了。修改一下你设置的jvm参数,将参数设置的特殊一些,例如正常设置是-Xms256m –Xmx1024m –XX:MaxPermSize=256m。

为了验证这个设置是否真正生效,可以这样设置:-Xms20480m -Xmx20480m -XX:MaxPermSize=256m(设置最小值超过物理内存)。

如果Tomcat启动抛出内存设置过大的错误,则说明你设置的jvm参数生效了,否则说明Tomcat没有使用你设置的jvm参数,此时就需要检查相关文件或环境变量中是否有设置jvm,继续检查到底使用的是哪一个。

对于Tomcat设置jvm参数这个问题,建议在catalina.bat(或catalina.sh)中进行设置,不要在环境变量中设置,因为环境变量是全局性的,可能会影响到其它Tomcat进程。  Linux下问题

在Linux下使用Tomcat,和Windwos下没有太大区别,但在实际项目中,也曾遇到过一些问题。

jvm参数无法识别问题

明明在catalina.sh中设置了jvm参数,但是无论怎么检查测试,就是不生效,后来发现jvm参数应该用双引号引起来才能生效:

JAVA_HOME=/root/jre1.8.0_181

JAVA_OPTS="-Xms512m -Xmx1536m -XX:MaxPermSize=256m"。

JAVA_OPTS参数中由于有空格,所以必须用双引号引起来,JAVA_HOME由于没有空格,所以可以不用双引号。在linux下的weblogic中也有类似问题。

context路径问题

在Windows下,配置context路径通常按照以下方法,例如,在

Tomcat \conf\Catalina\localhost\下,新建一个test.xml文件,文件内容如下:

<Context path="/testxn" docBase="/opt/tomcat/testapp"

debug="0" privileged="true">

<!-- Link to the user database we will get roles from -->

<ResourceLink name="users" global="UserDatabase"

type="org.apache.catalina.UserDatabase"/>

</Context>

Tomcat启动后,通过http://127.0.0.1:8080/testxn即可以访问系统。

然而在linux系统中,同样是按照上面的配置,通过上面的地址却访问不了,提示404错误,后来无意间发现,通过

http://127.0.0.1:8080/test可以访问系统,context路径竟然和配置文件的名称(test.xml)保持一致,这个问题比较奇怪,只是发现了这个规律,具体原因尚不清楚。

小结

本文仅针对日常项目实施和开发测试过程中,Tomcat出现的一些常见问题进行了总结,关于Tomcat的其他使用技巧还有很多,希望大家可以多多总结多多分享。

最后:

可以我的个人V:atstudy-js,可以免费领取一份10G软件测试工程师面试宝典文档资料。以及相对应的视频学习教程免费分享!,其中包括了有基础知识、Linux必备、Mysql数据库、抓包工具、接口测试工具、测试进阶-Python编程、Web自动化测试、APP自动化测试、接口自动化测试、测试高级持续集成、测试架构开发测试框架、性能测试等。

这些测试资料,对于做【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴我走过了最艰难的路程,希望也能帮助到你!

常用应用服务器——Tomcat的常用小技巧相关推荐

  1. excel删除空行_办公中常用的6个Excel小技巧,不会你就OUT了!

    原标题:办公中常用的6个Excel小技巧,不会你就OUT了! 今天小编给大家分享几个EXCEL办公中比较常用的小技巧,赶紧跟我一起来学习下吧! 01 将所有数据上调 在某些情况下,我们希望将表格中所有 ...

  2. excel 行高 上下留白_拒绝加班,工作中最常用的57个Excel小技巧来了!

    今天高顿君分享的 Excel小技巧,全是工作是最常用且简单易操作的,共57个,希望对同学们有所帮助.(适合版本 Excel2007及以上) 一.文件操作 1.为excel文件添加打开密码 文件 - 信 ...

  3. 计算机exce常用功能,电脑办公实用小技巧

    原标题:电脑办公实用小技巧 干货推荐--电脑实用小技巧 宅家这么多天,似乎我们交流的方式大多数是通过网络进行的,所以一些电脑操作的小技巧也是必不可少的哦! 今天我们简单的为大家介绍一些小技能,大家可以 ...

  4. 超实用!SKETCH大师最常用的3个实战小技巧

    编者按:面对Sketch这样的新应用,谁都想直接达到到高效.高产.熟练的使用水平.所以今天@窒息红Leon 就来介绍关于 Sketch 的三个小诀窍,而它们通常只能在经验丰富的 Sketch 大师身上 ...

  5. 常用的兼容IE6及小技巧

    为什么会出现浏览器兼容问题 由于各大主流浏览器由不同的厂家开发,所用的核心架构和代码也很难重和,这就为各种莫名其妙的Bug(代码错误)提供了温床.再加上各大厂商出于自身利益考虑而设置的种种技术壁垒,都 ...

  6. 【SpringBoot 2】(七)请求处理——映射 常用注解 方法参数的小技巧

    写在前面

  7. 自己常用的C/C++小技巧

    这里列出了自己常用的一些c/c++小技巧, 有些会有不足, 可以简单探讨一下. 32位/64位等 分类 分类: 小技巧 同理可以用于其他位, 比如16位什么的. 由于不同位的平台指针的大小可能是不同的 ...

  8. 怎样快速掌握WORD的常用功能,看这里就够了,常见的一些word使用小技巧

    软件的使用,比如word,word强大的文档处理能力,让word的使用频率大大增加,现在我将介绍几种word中常用的几种使用小技巧. 快速查找某些关键字所在位置. (1)第一步打开word文档,按下[ ...

  9. UI界面如何制作?这些版式设计小技巧收藏好!

    本文由:"学设计上兔课网"原创,图片素材来自网络,仅供学习分享 UI界面如何制作?这些版式设计小技巧收藏好!在做UI界面的时候,很多时候我们需要去看很多的产品进行竞品分析.市场调研 ...

  10. [转]40种网页常用小技巧----Ajax中国

    1. οncοntextmenu="window.event.returnValue=false" 将彻底屏蔽鼠标右键 <table border οncοntextmenu ...

最新文章

  1. OpenCV中使用神经网络 CvANN_MLP
  2. Java基础知识➣面向对象(八)
  3. 如何用shell脚本编译java工程
  4. 高级Bash脚本编程指南《Advanced Bash-Scripting Guide》 in Chinese
  5. LeetCode-18-4Sum
  6. php如果能编译就完美了,centos7 完美编译PHP7 php-7.2.10.tar.gz
  7. ant design样式不生效官方解决方案
  8. VS2008建立webserver(转)
  9. [Windows Server 2008] 404错误设置方法
  10. 简要概述网络I/O与并发
  11. 有了linux基础还学习学哪些,学linux的前途和好处有哪些
  12. VIP文档复制文字方法
  13. IDEA Maven 使用教程
  14. 利用laravel框架创建todos
  15. ArcBlock 赴美国华盛顿州议会作证支持区块链立法
  16. 选课系统源码html,高校选课系统 - WEB源码|源代码 - 源码中国
  17. 拼多多玩出花的社交电商 你知道多少?四川海昇智深度解析来啦
  18. 昨夜星辰昨夜风,只因见您在梦中
  19. mysql5.7 报错1055_MySql5.7 报错 1055
  20. 10个方法教你解决虚幻4运行崩溃问题

热门文章

  1. [运算放大器]佛朗哥笔记 - 信号发生器 - 三角波发生器
  2. 远程桌面技术之-“你的凭据不工作”
  3. 数据集 过滤时 RecordCount 属性
  4. C++ 调用WINDOWS图片和传真查看器打开图片
  5. Wordpress中wp-admim管理后台(404)无法进入,无限循环跳出解决方法
  6. Java常用工具类-根据物流单号,从快递100中获取物流详细信息,包含发货,签收等
  7. MMA7455加速度传感器测量角度
  8. 我是如何出版一本书的?(1)
  9. ubuntu流量监控_ubuntu 流量监控
  10. 5G无线采集网关 poe供电