idea导入tomcat8源码搭建源码调试环境()

  本篇文章为你整理了idea导入tomcat8源码搭建源码调试环境()的详细内容,包含有 idea导入tomcat8源码搭建源码调试环境,希望能帮助你了解 idea导入tomcat8源码搭建源码调试环境。

  从apache tomcat下载tomcat8源码

  1.下载到源码后,tomcat默认使用ant作为包管理工具,本地调试时创建pom.xml, 手动创建一个pom.xml放入源码根目录

  

 ?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.0.2 /version

   configuration

   encoding UTF-8 /encoding

   source 1.8 /source

   target 1.8 /target

   /configuration

   /plugin

   /plugins

   /build

   dependencies

   dependency

   groupId org.easymock /groupId

   artifactId easymock /artifactId

   version 5.0.0 /version

   scope test /scope

   /dependency

   dependency

   groupId com.unboundid /groupId

   artifactId unboundid-ldapsdk /artifactId

   version 6.0.4 /version

   scope test /scope

   /dependency

   dependency

   groupId ant /groupId

   artifactId ant /artifactId

   version 1.7.0 /version

   /dependency

   dependency

   groupId ant /groupId

   artifactId ant-apache-log4j /artifactId

   version 1.6.5 /version

   /dependency

   dependency

   groupId ant /groupId

   artifactId ant-commons-logging /artifactId

   version 1.6.5 /version

   /dependency

   dependency

   groupId wsdl4j /groupId

   artifactId wsdl4j /artifactId

   version 1.6.2 /version

   /dependency

   dependency

   groupId javax.xml.rpc /groupId

   artifactId javax.xml.rpc-api /artifactId

   version 1.1 /version

   /dependency

   dependency

   groupId org.eclipse.jdt.core.compiler /groupId

   artifactId ecj /artifactId

   version 4.6.1 /version

   /dependency

   dependency

   groupId junit /groupId

   artifactId junit /artifactId

   version 4.12 /version

   scope test /scope

   /dependency

   /dependencies

   /project

  

 

  2.使用idea导入tomcat源码 File- Project from Existing Sources - Maven import
 

  重新导入依赖后TestCookieFilter会报错,本地注释掉单元测试类即可。
 

  3.编辑配置文件, Edit Configuration, 如下图。
 

  设置catalina.home和tomcat启动类Bootstrap, jdk我选择的是1.8
 

  
 

  4.Maven Reload, 把依赖的包重新导入进来。
 

  添加JSP解析器代码:

  1.Servlet.service() for servlet [jsp] in context with path [] threw exception [org.apache.jasper.JasperException: Unable to compile class for JSP] with root cause

  解决方案:编辑 org.apache.catalina.startup.ContextConfig 文件的 configureStart() 方法,添加初始化 JSP 解析器的代码:

  在ContextConfig类的configStart方法中加入以下代码

  

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

 

  

 

  我本地下载的tomcat8源码, 以上工作准备完后,直接编译,单元测试也没报错。运行起来,就可以看到猫咪了, 可以开心的看源码了。
 

  
 

  我本地的源码config/server.xml里配置的是8080端口, 这里就跑起来了。
 

  tomcat源码目录结构

  tomcat核心源码

  CATALINA_HOME和CATALINA_BASE

  开始阅读tomcat源码之前,先浏览一遍tomcat官方写的介绍,里面内容很全,也是我们学习的第一手资料,这里涉及到两个变量CATALINA_HOME和CATALINA_BASE。

  CATALINA_HOME:表示 Tomcat 安装的根目录,即D:\Gitee\tomcat8\apache-tomcat-8.5.85-src

  CATALINA_BASE:表示特定 Tomcat 实例的运行时配置的根。如果你需要在一台机器上配置多个tomcat实例,则需要用到catalina_base变量

  为什么使用CATALINA_BASE

  默认情况下,CATALINA_HOME和CATALINA_BASE指向同一目录。当您需要在一台计算机上运行多个 Tomcat 实例时,手动设置CATALINA_BASE。这样做具有以下优点:

  更轻松地管理升级到较新版本的 Tomcat。由于具有单个CATALINA_HOME位置的所有实例共享一组文件和二进制文件,因此您可以轻松地将文件升级到较新版本,并将更改传播到使用同一CATALIA_HOME目录的所有 Tomcat 实例。

  避免重复相同的bin、lib文件夹的文件。

  共享某些设置的可能性,例如 shell 或 bat 脚本文件(取决于您的操作系统)。

  https://2i3i.com/tomcat-code-7.html

  
博客版权:本文以学习、研究和分享为主,欢迎转载,但必须在文章页面明显位置给出原文连接。
如果文中有不妥或者错误的地方还望高手的你指出,以免误人子弟。如果觉得本文对你有所帮助不如【推荐】一下!如果你有更好的建议,不如留言一起讨论,共同进步!
再次感谢您耐心的读完本篇文章。

  以上就是idea导入tomcat8源码搭建源码调试环境()的详细内容,想要了解更多 idea导入tomcat8源码搭建源码调试环境的内容,请持续关注盛行IT软件开发工作室。

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: