因工作原因,需要从根本上优化tomcat的配置,故准备从源码入手,看看可以做哪些工作。

1. tomcat下载
tomcat最新的版本为9,下载源码的方式有3种:
1/ 官方网站 https://tomcat.apache.org/download-90.cgi,下载如下zip或者tar.gz解压,最新的release版本为9.0.22

2/github
gitclone https://github.com/apache/tomcat.git 或者下载压缩包,gitclone得到tomcat目录
压缩包默认得到tomcat-master目录,如下图所示

3/svn
https://svn.apache.org/repos/asf/tomcat/trunk/
2. tomcat的编译
准备工作
C:Users86137>java -versionjava version "1.8.0_91"Java(TM) SE Runtime Environment (build 1.8.0_91-b15)Java HotSpot(TM) 64-Bit Server VM (build 25.91-b15, mixed mode)
C:Users86137>ant -versionApache Ant(TM) version 1.9.14 compiled on March 12 2019
编译命令
cd ${tomcat.source}ant
或者eclipse支持
cd ${tomcat.source}ant ide-eclipse
3.导入ide(eclipse为例)
准备工作
增加两个classpath变量

导入
4.启动
配置1 
配置2
启动成功
5. 可能出现的问题
tomcat 显示乱码,-Dfile.encoding=UTF8 或者GBK 都不行,网上各种回答都不能根本解决问题。调试VersionLoggerListener进行发现

修改-Dfile.encoding=UTF8 或者GBK 都 能起效,但乱码仍然不能解决。
进入StringManager sm变量发现,local为zh_cn时,启用的属性文件本身的编码就是乱码,尝试了不少解决办法如修改eclipse的默认方式为utf-8 都不行,网上各种方式也试过。
均不好用。那我们就绕过去吧,将local设置为us不容易报错。修改启动参数,如下所示。

此时,启动显示如下:(全部英文,不再乱码)
Jul 22, 2019 7:17:10 PM org.apache.catalina.startup.VersionLoggerListener logINFO: UTF-8Jul 22, 2019 7:17:10 PM org.apache.catalina.startup.VersionLoggerListener logINFO: Server version name: Apache Tomcat/9.0.x-devJul 22, 2019 7:17:10 PM org.apache.catalina.startup.VersionLoggerListener logINFO: Server built: unknownJul 22, 2019 7:17:10 PM org.apache.catalina.startup.VersionLoggerListener logINFO: Server version number: 9.0.xJul 22, 2019 7:17:10 PM org.apache.catalina.startup.VersionLoggerListener logINFO: OS Name: Windows 10Jul 22, 2019 7:17:10 PM org.apache.catalina.startup.VersionLoggerListener logINFO: OS Version: 10.0Jul 22, 2019 7:17:10 PM org.apache.catalina.startup.VersionLoggerListener logINFO: Architecture: amd64Jul 22, 2019 7:17:10 PM org.apache.catalina.startup.VersionLoggerListener logINFO: Java Home: C:Program FilesJavajdk1.8.0_91jreJul 22, 2019 7:17:10 PM org.apache.catalina.startup.VersionLoggerListener logINFO: JVM Version: 1.8.0_91-b15Jul 22, 2019 7:17:10 PM org.apache.catalina.startup.VersionLoggerListener logINFO: JVM Vendor: Oracle CorporationJul 22, 2019 7:17:10 PM org.apache.catalina.startup.VersionLoggerListener logINFO: CATALINA_BASE: C:workspace omcatoutputbuildJul 22, 2019 7:17:10 PM org.apache.catalina.startup.VersionLoggerListener logINFO: CATALINA_HOME: C:workspace omcatoutputbuildJul 22, 2019 7:17:10 PM org.apache.catalina.startup.VersionLoggerListener logINFO: Command line argument: -Xmx10240mJul 22, 2019 7:17:10 PM org.apache.catalina.startup.VersionLoggerListener logINFO: Command line argument: -Dfile.encoding=UTF8Jul 22, 2019 7:17:10 PM org.apache.catalina.startup.VersionLoggerListener logINFO: Command line argument: -Dcatalina.home=C:workspace omcatoutputbuildJul 22, 2019 7:17:10 PM org.apache.catalina.startup.VersionLoggerListener logINFO: Command line argument: -Duser.language=enJul 22, 2019 7:17:10 PM org.apache.catalina.startup.VersionLoggerListener logINFO: Command line argument: -Duser.region=USJul 22, 2019 7:17:10 PM org.apache.catalina.core.AprLifecycleListener lifecycleEventINFO: The APR based Apache Tomcat Native library which allows optimal performance in production environments was not found on the java.library.path: [C:Program FilesJavajdk1.8.0_91bin;C:WindowsSunJavabin;C:Windowssystem32;C:Windows;C:/Program Files/Java/jdk1.8.0_91/bin/https://blog.51cto.com/jre/bin/server;C:/Program Files/Java/jdk1.8.0_91/bin/https://blog.51cto.com/jre/bin;C:/Program Files/Java/jdk1.8.0_91/bin/https://blog.51cto.com/jre/lib/amd64;C:Program FilesJavajdk1.8.0_91bin;C:Windowssystem32;C:Windows;C:WindowsSystem32Wbem;C:WindowsSystem32WindowsPowerShellv1.0;C:WindowsSystem32OpenSSH;C:Program Files (x86)NVIDIA CorporationPhysXCommon;C:Program FilesNVIDIA CorporationNVIDIA NvDLISR;C:Program FilesIntelWiFibin;C:Program FilesCommon FilesIntelWirelessCommon;C:Program FilesGitcmd;C:Program FilesTortoiseGitbin;C:softwareapache-ant-1.9.4bin;C:Users86137AppDataLocalMicrosoftWindowsApps;;C:softwarests-4.3.1.RELEASE;;.]Jul 22, 2019 7:17:12 PM org.apache.coyote.AbstractProtocol initINFO: Initializing ProtocolHandler ["http-nio-8080"]Jul 22, 2019 7:17:12 PM org.apache.coyote.AbstractProtocol initINFO: Initializing ProtocolHandler ["ajp-nio-8009"]Jul 22, 2019 7:17:12 PM org.apache.catalina.startup.Catalina loadINFO: Server initialization in [11,311] millisecondsJul 22, 2019 7:17:12 PM org.apache.catalina.core.StandardService startInternalINFO: Starting service [Catalina]Jul 22, 2019 7:17:12 PM org.apache.catalina.core.StandardEngine startInternalINFO: Starting Servlet engine: [Apache Tomcat/9.0.x-dev]Jul 22, 2019 7:17:12 PM org.apache.catalina.startup.HostConfig deployDirectoryINFO: Deploying web application directory [C:workspace omcatoutputbuildwebappsdocs]Jul 22, 2019 7:17:44 PM org.apache.jasper.servlet.TldScanner scanJarsINFO: At least one JAR was scanned for TLDs yet contained no TLDs. Enable debug logging for this logger for a complete list of JARs that were scanned but no TLDs were found in them. Skipping unneeded JARs during scanning can improve startup time and JSP compilation time.Jul 22, 2019 7:17:45 PM org.apache.catalina.util.SessionIdGeneratorBase createSecureRandomWARNING: Creation of SecureRandom instance for session ID generation using [SHA1PRNG] took [331] milliseconds.Jul 22, 2019 7:17:45 PM org.apache.catalina.startup.HostConfig deployDirectoryINFO: Deployment of web application directory [C:workspace omcatoutputbuildwebappsdocs] has finished in [32,358] msJul 22, 2019 7:17:45 PM org.apache.catalina.startup.HostConfig deployDirectoryINFO: Deploying web application directory [C:workspace omcatoutputbuildwebappsexamples]Jul 22, 2019 7:17:48 PM org.apache.jasper.servlet.TldScanner scanJarsINFO: At least one JAR was scanned for TLDs yet contained no TLDs. Enable debug logging for this logger for a complete list of JARs that were scanned but no TLDs were found in them. Skipping unneeded JARs during scanning can improve startup time and JSP compilation time.Jul 22, 2019 7:17:48 PM org.apache.catalina.core.ApplicationContext logINFO: ContextListener: contextInitialized()Jul 22, 2019 7:17:48 PM org.apache.catalina.core.ApplicationContext logINFO: SessionListener: contextInitialized()Jul 22, 2019 7:17:48 PM org.apache.catalina.core.ApplicationContext logINFO: ContextListener: attributeAdded('StockTicker', 'async.Stockticker@71238fc2')Jul 22, 2019 7:17:48 PM org.apache.catalina.startup.HostConfig deployDirectoryINFO: Deployment of web application directory [C:workspace omcatoutputbuildwebappsexamples] has finished in [3,355] msJul 22, 2019 7:17:48 PM org.apache.catalina.startup.HostConfig deployDirectoryINFO: Deploying web application directory [C:workspace omcatoutputbuildwebappshost-manager]Jul 22, 2019 7:17:48 PM org.apache.jasper.servlet.TldScanner scanJarsINFO: At least one JAR was scanned for TLDs yet contained no TLDs. Enable debug logging for this logger for a complete list of JARs that were scanned but no TLDs were found in them. Skipping unneeded JARs during scanning can improve startup time and JSP compilation time.Jul 22, 2019 7:17:48 PM org.apache.catalina.startup.HostConfig deployDirectoryINFO: Deployment of web application directory [C:workspace omcatoutputbuildwebappshost-manager] has finished in [83] msJul 22, 2019 7:17:48 PM org.apache.catalina.startup.HostConfig deployDirectoryINFO: Deploying web application directory [C:workspace omcatoutputbuildwebappsmanager]Jul 22, 2019 7:17:48 PM org.apache.jasper.servlet.TldScanner scanJarsINFO: At least one JAR was scanned for TLDs yet contained no TLDs. Enable debug logging for this logger for a complete list of JARs that were scanned but no TLDs were found in them. Skipping unneeded JARs during scanning can improve startup time and JSP compilation time.Jul 22, 2019 7:17:48 PM org.apache.catalina.startup.HostConfig deployDirectoryINFO: Deployment of web application directory [C:workspace omcatoutputbuildwebappsmanager] has finished in [58] msJul 22, 2019 7:17:48 PM org.apache.catalina.startup.HostConfig deployDirectoryINFO: Deploying web application directory [C:workspace omcatoutputbuildwebappsROOT]Jul 22, 2019 7:17:50 PM org.apache.jasper.servlet.TldScanner scanJarsINFO: At least one JAR was scanned for TLDs yet contained no TLDs. Enable debug logging for this logger for a complete list of JARs that were scanned but no TLDs were found in them. Skipping unneeded JARs during scanning can improve startup time and JSP compilation time.Jul 22, 2019 7:17:50 PM org.apache.catalina.startup.HostConfig deployDirectoryINFO: Deployment of web application directory [C:workspace omcatoutputbuildwebappsROOT] has finished in [1,322] msJul 22, 2019 7:17:50 PM org.apache.coyote.AbstractProtocol startINFO: Starting ProtocolHandler ["http-nio-8080"]Jul 22, 2019 7:17:50 PM org.apache.coyote.AbstractProtocol startINFO: Starting ProtocolHandler ["ajp-nio-8009"]Jul 22, 2019 7:17:50 PM org.apache.catalina.startup.Catalina startINFO: Server startup in [37,521] milliseconds
到此这篇tomcat10乱码怎么解决(tomcat解决乱码问题)的文章就介绍到这了,更多相关内容请继续浏览下面的相关推荐文章,希望大家都能在编程的领域有一番成就!
版权声明:
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若内容造成侵权、违法违规、事实不符,请将相关资料发送至xkadmin@xkablog.com进行投诉反馈,一经查实,立即处理!
转载请注明出处,原文链接:https://www.xkablog.com/cjjbc/11802.html