apache-tomcat部署问题总结

apache-tomcat部署问题总结

来源:oschina 链接:https://my.oschina.net/u/3204029/blog/4314733

@Tomcat启动项目警告: org.apache.jasper.servlet.TldScanner.scanJars 至少有一个JAR被扫描用于TLD但尚未包含TLD…

问题描述:org.apache.jasper.servlet.TldScanner.scanJars 至少有一个JAR被扫描用于TLD但尚未包含TLD。 为此记录器启用调试日志记录,以获取已扫描但未在其中找到TLD的完整JAR列表。 在扫描期间跳过不需要的JAR可以缩短启动时间和JSP编译时间。 项目运行之后还是显示404,大多数情况下,这个只是warning并非error,是不会影响运行的! 解决办法:

找到自己Tomcat安装路路径下的conf目录里面的catalina.properties文件中:
tomcat.util.scan.StandardJarScanFilter.jarsToSkip=\ 
更改为:
tomcat.util.scan.StandardJarScanFilter.jarsToSkip=*.jar

@tomcat 默认登录名密码

在tomcat目录下,找到conf文件夹,然后找到tomcat-users.xml文件,添加如下信息
<role rolename="manager-gui"/>
<user username="tomcat" password="123456" roles="manager-gui"/>

@点击startup.bat启动tomcat出现乱码,Tomcat默认都是UTF-8的,但是控制台是GBK的,要保持一致

找到tomcat目录下的/conf/logging.properties
添加语句:java.util.logging.ConsoleHandler.encoding = GBK
重启tomcat

@修改tomcat启动框标题

打开tomcat中bin目录下面的catalina.bat,搜索“TITLE”,找到以下代码:
:doStart
shift
if "%TITLE%" == "" set TITLE=Tomcat 8.5.31

@Sprinboot2.0.1需要配置tomcat8 启动

springboot配置tomcat7启动
	spring-boot-starter-web 1.5
<!-- tomcat的支持JSP页面-->
 <dependency>
	<groupId>org.apache.tomcat.embed</groupId>
	<artifactId>tomcat-embed-jasper</artifactId>
	<version>8.5.15</version>
</dependency>

@tomcat配置去掉项目名称访问

<Context path="" docBase="tour" reloadable="true" /> 

org.apache.coyote.http11。HeadersTooLargeException:尝试向响应头写入的数据比缓冲区中可用的空间要多

在连接器上增加maxHttpHeaderSize,或者将更少的数据写入响应头,server.xml 原来没有配置 maxHttpHeaderSize,默认值只有 4096 个字节(4k)
<Connector connectionTimeout="20000" maxHttpHeaderSize="8999" port="8080" protocol="HTTP/1.1" redirectPort="8443"/>

idea 的Tomcat Server 配置VM options参数说明

-Xms1024m -Xmx1024m -XX:PermSize=256m -XX:MaxPermSize=1024m

@tomact 启动“startup.bat”一闪而过

双击tomcat的bin目录下的startup.bat时一闪而过时,可以右键startup.bat找一个文本编辑器打开,
然后在文本的最后敲上 pause,保存后重新运行startup.bat,这时候窗口会留在桌面上(调试成功,把pause去掉即可)。我们可以看到DOS窗口里有错误信息。

@严重: Unable to process Jar entry

[org/apache/ibatis/javassist/runtime/DotClass.class] from Jar [jar:file:/F:/apache-tomcat-7.0.55-8084/webapps/oa/WEB-INF/lib/mybatis-3.4.0.jar!/] for annotations java.io.EOFException
tomcat7中,mybatis-3.2.6.jar 运行正常、mybatis-3.4.0.jar运行报错,降低mybatis版本或者更换tomcat8版本

@警告 [main] org.apache.catalina.webresources.Cache.getResource

无法将位于[/...***.js]的资源添加到Web应用程序[/*]的缓存中,因为在清除过期缓存条目后可用空间仍不足 - 请考虑增加缓存的最大空间。
解决方法
在 /conf/context.xml 的 </Context>前添加以下内容(大小默认是1024,单位是KB):
<Context>
	<WatchedResource>WEB-INF/web.xml</WatchedResource>
	<WatchedResource>${catalina.base}/conf/web.xml</WatchedResource>
	<Resources cachingAllowed="true" cacheMaxSize="1024" />
</Context>

tomcat启动收到包含无效cookie的cookie头

org.apache.tomcat.util.http.parser.Cookie.logInvalidHeader 收到包含无效cookie的cookie头…

org.apache.tomcat.util.http.parser.Cookie.logInvalidHeader A cookie header was received
在启动项目时遇到logInvalidHeader 的警告,当然不影响系统的运行
问题来源: 是因为新版tomcat的cookie处理warn比老版严格造成,由tomcat6升级到tomcat8就会有这个问题。
[http-nio-8080-exec-5] org.apache.tomcat.util.http.parser.Cookie.logInvalidHeader A cookie header was received [XX] that contained an invalid cookie. That cookie will be ignored.Note: further occurrences of this error will be logged at DEBUG level.
解决方法:添加LegacyCookieProcessor文件来替代默认的cookie设置。(cookie解析器)
 
cat /usr/local/apache-tomcat-8.5.12/conf/context.xml 
<?xml version="1.0" encoding="UTF-8"?>
<!-- The contents of this file will be loaded for each web application -->
<Context>
    <WatchedResource>WEB-INF/web.xml</WatchedResource>
    <WatchedResource>${catalina.base}/conf/web.xml</WatchedResource>
    <!--
    <CookieProcessor className="org.apache.tomcat.util.http.Rfc6265CookieProcessor" />
    -->
    <CookieProcessor className="org.apache.tomcat.util.http.LegacyCookieProcessor" />
</Context>

————————————————
版权声明:本文为CSDN博主「wenyanxing」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/wenyanxing/article/details/89640054

@tomcat 控制台日志输出到文件

在tomcat安装目录bin文件夹下,找到 startup.bat 文件并右键编辑,在最后找到这样一行代码

call "%EXECUTABLE%" start %CMD_LINE_ARGS%

替换成类似这样 (outputfile.log为要生成日志的文件名及扩展名)

call "%EXECUTABLE%" run >..\logs\outputfile.log 2>&1 start %CMD_LINE_ARGS% run >..\logs\outputfile.log 2>&1

如果想将日志文件分日期打印成多个文件,可以将文件名改为

catalina.%date:~0,4%-%date:~5,2%-%date:~8,2%.out

对应生成的文件名格式为:catalina.2020-12-11.out

参考文档

https://my.oschina.net/i33/blog/626239?utm_medium=referral
http://ribbonchen.blog.163.com/blog/static/118316505201131931545614/
https://www.cnblogs.com/jmcui/archive/2018/01/17/8297351.html

@tomcat设置jvm参数,及启用headless模式

Headless模式是系统的一种配置模式。在系统可能缺少显示设备、键盘或鼠标这些外设的情况下可以使用该模式。


到Tomcat的bin目录下,打开文件catalina.bat,添加如下参数,然后保存。

set "JAVA_OPTS=-Djava.awt.headless=false"

命令行窗口中输入命令jvisualvm(打开JDK自带的JVM工具Java Visual),查看tomcat的JVM参数。

jvisualvm

参考

Tomcat的JVM启动参数配置

  • 0
    点赞
  • 0
    评论
  • 2
    收藏
  • 扫一扫,分享海报

参与评论 您还未登录,请先 登录 后发表或查看评论
©️2022 CSDN 皮肤主题:大白 设计师:CSDN官方博客 返回首页
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值