MacBook搭建Tomcat8源码阅读环境 Idea+Maven

MacBook搭建Tomcat8源码阅读环境

准备工作

下载源码
https://tomcat.apache.org/download-80.cgi#8.0.53

源码目录配置

1、新建catalina-home目录,把xxx-src目录里的conf等目录复制到当前目录,没有的目录自己新建空目录。MacBook搭建Tomcat8源码阅读环境 Idea+Maven_第1张图片
2、新建pom.xml并配置

4.0.0    
org.apache.tomcat    
Tomcat8.0    
Tomcat8.0    
8.0    

    
    Tomcat8.0    
    java    
    test    
        
            
            java    
            
        
        
            
            test    
            
        
        
            
            org.apache.maven.plugins    
            maven-compiler-plugin    
            2.0.2    

                
                UTF-8    
                1.8    
                1.8    
                
            
        
    

  
      
        org.easymock  
        easymock  
        3.5  
        test  
      

        
        junit    
        junit    
        4.12  
        test    
        
        
        ant    
        ant    
        1.7.0    
        
        
        wsdl4j    
        wsdl4j    
        1.6.2    
        
        
        javax.xml    
        jaxrpc    
        1.1    
        
        
        org.eclipse.jdt.core.compiler    
        ecj    
        4.6.1  
        
    

导入idea

File->Open->pom.xml
等待maven下载完成依赖jar包后,源码目录就可以正常显示了。

配置并运行

1、idea中打开apache-tomcat-8.0.53-src目录,定位到java目录,右键
Mark Directory as->Sources Root

2、配置启动入口类等信息
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

配置效果:
MacBook搭建Tomcat8源码阅读环境 Idea+Maven_第2张图片

点击运行按钮:这里可以看到已经启动成功
MacBook搭建Tomcat8源码阅读环境 Idea+Maven_第3张图片

但是访问localhost:8080报错:
MacBook搭建Tomcat8源码阅读环境 Idea+Maven_第4张图片

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

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

如下:
MacBook搭建Tomcat8源码阅读环境 Idea+Maven_第5张图片

重启之后即可正常访问!
MacBook搭建Tomcat8源码阅读环境 Idea+Maven_第6张图片
参考资料:
IDEA运行Tomcat8源码
https://blog.csdn.net/yekong1225/article/details/81000446

你可能感兴趣的:(Tomcat,源码,配置)