您的位置:首页 > 新闻 > 资讯 > 网站设计就业压力_一键抠图永久免费_廊坊网站设计_外国人b站

网站设计就业压力_一键抠图永久免费_廊坊网站设计_外国人b站

2025/4/10 8:46:24 来源:https://blog.csdn.net/qq_16992475/article/details/147008713  浏览:    关键词:网站设计就业压力_一键抠图永久免费_廊坊网站设计_外国人b站
网站设计就业压力_一键抠图永久免费_廊坊网站设计_外国人b站

一. IDEA运行Tomcat8源码

参考网址:https://blog.csdn.net/yekong1225/article/details/81000446

​ Tomcat作为J2EE的开源实现,其代码具有很高的参考价值,我们可以从中汲取很多的知识。作为Java后端程序员,相信有很多人很想了解Tomcat的运行原理。Tomcat的构建是基于Ant和Eclipse的,然而现在很多人都喜欢IDEA+Maven的项目构建方式,本文描述了在Win7的环境下,使用IDEA导入Tomcat 8.0.53源码,并运行tomcat源码。

1、准备工作

  • Tomcat源码下载地址:http://mirror.bit.edu.cn/apache/tomcat/tomcat-8/v8.0.53/src/apache-tomcat-8.0.53-src.zip
  • IDEA工具:https://www.jetbrains.com/idea/download
  • MAVEN:http://maven.apache.org/download.cgi
  • JDK:自然不用多提了,但是要按照所选源码要求的版本,这里用的是JDK8

安装和下载这些软件包就可以开始搭建调试环境了。

2、项目结构

img

  • 将下载下来的apache-tomcat-8.0.53-src.zip解压,然后在解压后的apache-tomcat-8.0.53-src目录中新建catalina-home目录和pom.xml文件
  • apache-tomcat-8.0.53-src目录中的conf和webapps文件夹复制到catalina-home目录中

pom文件内容如下

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><groupId>org.apache.tomcat</groupId><artifactId>Tomcat8.0</artifactId><name>Tomcat8.0</name><version>8.0</version><build><finalName>Tomcat8.0</finalName><sourceDirectory>java</sourceDirectory><testSourceDirectory>test</testSourceDirectory><resources><resource><directory>java</directory></resource></resources><testResources><testResource><directory>test</directory></testResource></testResources><plugins><plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-compiler-plugin</artifactId><version>2.3</version><configuration><encoding>UTF-8</encoding><source>1.8</source><target>1.8</target></configuration></plugin></plugins></build><dependencies><dependency><groupId>junit</groupId><artifactId>junit</artifactId><version>4.12</version><scope>test</scope></dependency><dependency><groupId>org.easymock</groupId><artifactId>easymock</artifactId><version>3.4</version></dependency><dependency><groupId>ant</groupId><artifactId>ant</artifactId><version>1.7.0</version></dependency><dependency><groupId>wsdl4j</groupId><artifactId>wsdl4j</artifactId><version>1.6.2</version></dependency><dependency><groupId>javax.xml</groupId><artifactId>jaxrpc</artifactId><version>1.1</version></dependency><dependency><groupId>org.eclipse.jdt.core.compiler</groupId><artifactId>ecj</artifactId><version>4.5.1</version></dependency></dependencies>
</project>

catalina-home目录结构如下

在这里插入图片描述

lib文件夹是空的

至此基本的准备工作已经完成了

3、构建项目

  1. 将apache-tomcat-8.0.53-src项目导入进IDEA中

    image-20200910130617170

  2. 配置启动参数

img

Main class设置为org.apache.catalina.startup.Bootstrap

添加VM options

-Dcatalina.home=catalina-home -Dcatalina.base=catalina-home -Djava.endorsed.dirs=catalina-home/endorsed -Djava.io.tmpdir=catalina-home/temp -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -Djava.util.logging.config.file=catalina-home/conf/logging.properties

说明:如果编译build的时候出现Test测试代码报错,注释该代码即可。本文中的Tomcat源码util.TestCookieFilter类会报错,将其注释即可。

4、启动项目

上面第三步已经构建了项目的运行环境,点击运行或者调试按钮后,正常运行。

img

项目启动完毕我们可以测试了,在浏览器访问http://localhost:8080/ 发现打不开我们看到的经典欢迎页面了,页面报了一个错

img

原因是我们直接启动org.apache.catalina.startup.Bootstrap的时候没有加载org.apache.jasper.servlet.JasperInitializer,从而无法编译JSP。解决办法是在tomcat的源码org.apache.catalina.startup.ContextConfig中手动将JSP解析器初始化:

context.addServletContainerInitializer(new JasperInitializer(), null);

img

修改完后,项目再启动,我们再在浏览器访问http://localhost:8080/ ,就可以看到我们所熟悉的经典欢迎页面了

img

二. 启动乱码问题解决

参考网址:https://www.jianshu.com/p/24483c3fc58c

日志级别中文提示正常 后面乱码 如图
img

img

解决方案:

1、可以采用英文输出 只需要配置启动参数即可

2、确认项目编码都设置为UTF-8后,在StringManager.java:134行后,增加一行代码:

​ str = new String(str.getBytes(StandardCharsets.ISO_8859_1), StandardCharsets.UTF_8);

img

修改后日志信息输出正常 但是前段调用后中文也可能是乱码

img

解决方案 此时还要改一个文件,否则页面报错信息为乱码;

Localizer类的getMessage(String errCode)方法也得加:

img

img

end

三.导入web项目到tomcat源码

相比较上而言,只需要修改下面的

image-20200911013600034

image-20200911014339782

image-20200911014511772

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com