tomcat源码运行

Tomcat源码编译运行 下载源码 导入Tomcat源码 打开IDEA新建一个空项目,设置好SDK(别忘了) 在项目路径下解压缩刚下的源码压缩包,新建一个home文件夹,将config和webapp两个文件夹挪入home文件夹中。 并在解压缩的tomcat源码目录下添加一个pom.xml配置文件 <?xml version="1.0" encoding="UTF-8"?> <project xmlns=... 阅读详情

学习目标:

本文是转载的,只是学习记录下!

原文路径如下:https://www.cnblogs.com/wk-missQ1/p/13138720.html

运行tomcat源码,有助于理解tomcat原理,学习tomcat!

学习内容:

1、下载tomcat源码
2、运行tomcat

开始

1、下载tomcat

在这里插入图片描述

2、配置路径和文件

1)下载到一个文件夹下,如tomcatSource,apache-tomcat-8.5.68-src是tomcat解压文件,catalina-home是自己创建的,放置配置文件的
在这里插入图片描述
2)catalina-home文件夹下内容,标红的是直接从源码包复制过来的
在这里插入图片描述
3)tomcatSource文件夹下加入pom文件,内容如下:
在这里插入图片描述
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>gxf</groupId>
    <artifactId>apache-tomcat-8</artifactId>
    <name>apache-tomcat-8-source</name>
    <version>1.0</version>
    <packaging>pom</packaging>
    <modules>
        <module>apache-tomcat-8.5.68-src</module>
    </modules>
</project>

注意:配置好modele,指向你的源码包名字

4)apache-tomcat-8.5.68-src包下加入pom文件
在这里插入图片描述
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.5.68</artifactId>
    <name>Tomcat8.5.68</name>
    <version>8.5</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>3.5</version>
            <scope>test</scope>
        </dependency>

        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>4.12</version>
            <scope>test</scope>
        </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.6.1</version>
        </dependency>
    </dependencies>
</project>

5)导入到idea中如下:
在这里插入图片描述
6)配置启动类
在这里插入图片描述
其中vm参数如下:

-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

7)test类有出现包找不到的,我是把他给屏蔽了

8)启动tomcat
在这里插入图片描述
在浏览器运行:http://localhost:8080/出现错误
在这里插入图片描述
修改:
因为我们直接启动org.apache.catalina.startup.Bootstrap的时候没有加载org.apache.jasper.servlet.JasperInitializer,从而无法编译JSP。解决办法是:

打开文件:java/org/apache/catalina/startup/ContextConfig.java,找到webConfig();方法,在下面加上context.addServletContainerInitializer(new JasperInitializer(),null);
如下:
在这里插入图片描述

设置完毕:再次访问
在这里插入图片描述

9)日志乱码
打印日志乱码虽说不是大事,但是也比较恶心
原文参考:https://blog.youkuaiyun.com/zhoutaoping1992/article/details/104751705
修改两个地方,将默认编码ISO-8859-1变成UTF-8
第一个地方:修改StringManager类中getString
在这里插入图片描述
第二个地方,修改Localizer类中getMessage方法
在这里插入图片描述

        try{
            errMsg = new String(errMsg.getBytes("ISO-8859-1"),"UTF-8");
        }catch (Exception e){
            e.printStackTrace();
        }

本文是转载的,只是记录学习下!

原文路径如下:https://www.cnblogs.com/wk-missQ1/p/13138720.html

在Eclipse中直接运行Tomcat8源码的完整指南 在高流量的Web应用中,单个服务器的资源可能不足以处理所有客户端请求。集群技术允许部署多个服务器实例,通过分工协作,提高应用的可用性、可靠性和可扩展性。本章将探讨Tomcat集群的基础概念、工作模式、通信同步机制以及部署策略。 阅读详情

相关推荐

IntelliJ IDEA中运行Tomcat 6源码的完整指南

深入理解Tomcat服务器的工作原理,离不开对其核心模块的深入学习。Tomcat的核心模块包括Catalina(负责管理Servlet容器)、Coyote(实现HTTP/1.1连接器)以及Jasper(负责JSP页面的处理)。每一个模块都有其独特的职责与工作方式。本章节将详细介绍这些模块的功能与实现细节,助你更深入地掌握Tomcat的工作机制。要修改Tomcat的现有功能,首先要设置本地开发环境,以便于进行源码级的调试和修改。

weixin_32480007的博客 1181

Tomcat 源码启动

要想学习 Tomcat 原理,看源码是最直接的方式,而想要理解源码,我们要想把它在本地跑起来。

imonkeyi的博客 857

apache-tomcat-8.5.68-src

apache-tomcat-8.5.68-src

Tomcat源码环境搭建及启动

Tomcat源码项目搭建及启动,源码项目搭建过程中问题解决。

weixin_44406041的博客 1908

Vue3实战:企业级应用集成钉钉扫码登录全流程解析

本文详细解析了在Vue3企业级应用中集成钉钉扫码登录的全流程。从钉钉开放平台应用创建与配置,到Vue3前端如何优雅地嵌入并管理扫码组件,再到后端如何安全地处理OAuth 2.0授权码以换取用户信息并完成登录,提供了完整的实战代码与避坑指南。该方案能有效实现安全便捷的单点登录,统一企业身份认证。

weixin_29019241的博客 292

从TTL到RS485:一颗CH342芯片搞定三种串口通信的硬件连接实战

本文详细介绍了CH342芯片在TTL、RS232和RS485三种串口通信模式下的硬件连接实战。通过精选的电路设计示例和配置技巧,展示了CH342在工业控制和智能硬件开发中的灵活应用,帮助开发者高效实现多协议通信,显著提升项目开发效率。

weixin_30709061的博客 510

Tomcat源码之Tomcat的执行流程

前面简单的介绍了Tomcat的框架架构,大家应该对tomcat有了一个简单的了解,但是作为技术人员还是需要亲自的去分析代码的执行流程,然后跟着debug断点走一遍才会心理踏实。对于一些初级的程序员来说对tomcat有一个了解认知就可以了,但是对于中级程序员来说还是要深入跟进代码才能感觉到别人写的完整架构的魅力。本文就简单的介绍了tomcat源码的构建,然后又debuger跟了tomcat的执行流程走了一遍,感兴趣的可以看着介绍跟着自己走一遍断点了解下。

李永志的博客 2987

STM32F407单一定时器输出4路不同频率及占空比的PWM波

STM32F407单一定时器输出4路不同频率及占空比的PWM波

qq_43868701的博客 4920

Tomcat源码解析——Tomcat的启动流程

在Catalina的load方法中,会找到server.xml文件,然后解析标签并创建出对应的实例对象,最终在调用最顶层的Server组件的init方法,会调用Service组件的初始化,而Service组件的会调用Connector组件的初始化(容器的初始化是懒加载的,即有请求达到时才开始初始化)。在catalina.sh脚本中,前面是环境判断和初始化参数,最终根据传递的start来执行上图的代码,最终会调用Tomcat的Bootstrap启动类的main方法,传递的参数是start。

m0_37914588的博客 4342

手撕代码系列:Conv2D

在实际的神经网络中,每个卷积核都会对应一个偏置值。这意味着如果网络有多个卷积核,每个卷积核的输出都可以加上对应的偏置。

qq_55794606的博客 911

Tomcat学习笔记(一)源码本地编译运行

学习阅读 《Tomcat内核设计剖析》 源码编译参考文章 idea编译运行tomcat,本地搭建请参考下面文章:https://www.jianshu.com/p/a6a2ab59da25 eclipse的请参考文章:https://blog.youkuaiyun.com/google2606/article/details/52529829 源码下载 https://github.com/apache/tomcat 由于项目文件挺多,再加上github是国外,一般很难下载成功!所以建议大家下载zip源码压缩包。 实践

极客中年的博客 1226

BACnet/IP BBMD跨网段通信深度解析与最佳实践

本文介绍了在BACnet/IP网络中通过BBMD实现跨子网设备通信的关键配置方法。重点阐述了广播分发表(BDT)中掩码设置的重要性:使用子网掩码(255.255.255.0)会导致路由器拦截广播消息,而必须采用主机掩码(255.255.255.255)才能启用单播隧道机制,使BACnet广播消息封装为可路由的单播UDP包。文章详细说明了BDT条目的正确配置格式、BIP广播地址的作用,并提供了验证步骤,强调在跨网段场景中,正确设置掩码是确保设备发现和通信成功的关键因素。

零一架构师的专栏 1537

IDEA运行Tomcat源码

1.Tomcat官网:https://tomcat.apache.org/ 2.下载tomcat8源码和二进制文件,如图: 3.解压源码包(apache-tomcat-8.5.43-src.zip),并在根目录下创建pom.xml和catalina-home文件夹,如图: 3-1).pom.xml内容如下: <?xml version="1.0" encoding="UTF...

Liucheng417的博客 2365

经典密码体制(上)

头歌

shannidawang的博客 3086

【Claude】Disabled organization 错误:组织被禁用的原因与 API Key 绕过方法

如果环境变量存在,下一步是找出它在哪里被设置的。"Disabled organization" 错误的本质不是账户被封,而是认证优先级冲突。环境变量优先级最高始终覆盖 OAuth 订阅认证报错信息具有误导性:"组织被禁用"指的通常是 API Key 所属的组织,而不是你的个人账户旧 Key 是隐形炸弹:即使你已经不再使用某个组织的 API,只要环境变量中残留该 Key,它就会持续覆盖你的订阅认证非交互模式更敏感claude -p模式下,只要有环境变量,就会强制使用它,完全忽略/login。

博客 8879

IDEA运行Tomcat源码教程整合

经过大半天的排坑,终于把Tomcat的源码运行起来了。 如果这篇文章能帮到你,别忘了点个小赞啊。 第一步:Tomcat源码下载 第二步:创建pom.xml (放置于apache-tomcat-8.5.54-src的根目录下---别忘了配置Maven) 下面提供两种制式。 配置方法一:需要在根目录新建catalina-home目录。 <?xml version="1.0" e...

一只小翊的博客 769

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

idea编译、运行tomcat源码

本文介绍一下tomcat的本地源码构建和源码运行:tomcat源码下载,使用ant构建tomcat,并在本地启动,tomcat源码导入idea,使用idea构建tomcat,并在本地启动

xuguofeng2016的博客 2419

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

搭建Tomcat源码阅读环境,无bug运行调试。答应我,和我一起学习Tomcat,不要放弃!

全网最好,没有之一,无bug运行Tomcat源码。经验分享,学习总结。

你学废了吗? 4551

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

tomcat源码下载运行

 tomcat 源码下载及本地运行   Tomcat 主干分支地址: Git 地址 :https://github.com/apache/tomcat.git Svn地址:http://svn.apache.org/repos/asf/tomcat/trunk   本文用svn (svn下载的较快些,好用点)   1. 预备---可先阅读官方文件 http://svn.apac...

ghods的专栏 835

将tomcat源码以maven方式运行

前言 最近在分析tomcat的启动流程,虽然我们可以在idea中查看到tomcat的源代码,但是我们不能在上面做一些代码注释,这就会 非常的不方便,所以我们还是能在本地 运行一份源码,这样非常有利于我们分析源码 一、下载tomcat源码,选择tomcat-8.5.55版本 进入tomcat官网,点击左侧菜单栏Download对应的版本,下载源码 二、idea中创建项目 1.在idea中创建一个空白项目,名称为tomcat_study 2.打开项目源目录,将tomcat的源码解压到其中

Jack 架构师之路 7万+

Eclipse下运行Tomcat源码工程

Tomcat是大家熟悉的Web服务器,而且是开源的。本文主要介绍如何在Eclipse下运行Tomcat的源码工程。本文中涉及的Tomcat源码均以Tomcat 6.x为例。 1、获取Tomcat源码 有两种方式可以获取Tomcat源码 (1)直接下载源码包,见http://

HuiyingXie的专栏 1755

(1)Tomcat 源码编译运行

目录前言一、Tomcat7源码的编译运行二、Tomcat8源码的编译运行总结 前言 Tomcat作为我们常用的web服务器,还是有必要深入学习以下的。本章是我记录Tomcat学习的第一篇文章,将会记录tomcat7和tomcat8在IDEA上编译运行的过程,运行环境是JDK1.8。 在IDEA上编译运行tomcat源码将会基于Maven,因此需要先了解Maven的g、a、v概念,这样方便处理编译运行过程中可能出现的问题。g也就是Group Id,表示组织名称,a是Artifact Id,表示项目名称,v是

夜风灵波的博客 1435

IDEA运行tomcat源码

这里提供下Tomcat9最简单运行源码的实现 1.去官网下载tomcat源码 2.新建pom.xml文件,与webapps,conf等文件夹平级存放,增加一些缺少的jar包(这些其实可以自己多运行几次试出来缺哪些jar包),插件的作用是不用每次刷新maven的jar包都需要调整java版本号,不会改版本号的可以看{% post_link IDEA修改java版本号 IDEA修改java版本号 %}...

qq_39835588的博客 610

tomcat源码运行配置

tomcat源码运行配置 运行环境 Jdk版本:1.8.0_211; tomcat版本:9.0.30 idea:2019.3 系统:IOS 首先下载tomcat源码 iea新建一个空项目 把tomcat源码拷贝到空项目的目录中 修改tomcat源码的配置文件 在tomcat目录下新建文件夹home,把conf和webapps移动到home目录下 在tomcat目录下新建一个pom.xml文件...

weiboKDhuo的博客 670
上一篇: 计算机位运算
下一篇: webservice简单使用
sun_code
博客等级 码龄12年 6粉丝 17原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值