嵌入式 Tomcat (Embedded Tomcat)

这篇博客介绍了如何将嵌入式Tomcat作为Java应用程序的库,并在mvnrepository下载所需依赖。文章详细阐述了如何启动嵌入式Tomcat,并重点讲解了如何将Tomcat与Spring框架集成,包括遇到的异常处理和代码简化方法,提供了一个用Kotlin封装的EmbeddedTomcat类示例。
摘要由CSDN通过智能技术生成

嵌入式 Tomcat 作为嵌入 Java 应用程序的库, 你可以在 mvnrepository 下载 发行版Jar 以及源码

https://mvnrepository.com/search?q=embed+tomcat

作为最基本的依赖, 你需要以下几个库

  • Tomcat Embed Core
  • Tomcat Embed Logging JULI
  • Tomcat Annotations API

现在, 让我们把 tomcat 跑起来

package develon.test;

import java.io.File;
import java.io.IOException;
import java.io.Writer;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.apache.catalina.Context;
import org.apache.catalina.LifecycleException;
import org.apache.catalina.connector.Connector;
import org.apache.catalina.startup.Tomcat;

public final class Main {
    File tmpDir = new File("F:\\Game\\tomcat");
    Tomcat tomcat = new Tomcat();
    
    public static void main(String[] args) throws Throwable {
        new Main().init();
    }
    
    private void init() throws Throwable {
        Runtime.getRuntime().addShutdownHook(new Thread(() -> {
                try {
                    tomcat.destroy();
                } catch (LifecycleException e) {
                    e.printStackTrace();
                }
            })
        );
        test();
    }

    private void test() throws Throwable {
        tomcat.setBaseDir(tmpDir.getAbsolutePath()); // 设置工作目录
        tomcat.setHostname("localhost"); // 主机名, 将生成目录: {工作目录}/work/Tomcat/{主机名}/ROOT
        System.out.println("工作目录: " + tomcat.getServer().getCatalinaBase().getAbsolutePath());

        tomcat.setPort(80);
        Connector conn = tomcat.getConnector(); // Tomcat 9.0 必须调用 Tomcat#getConnector() 方法之后才会监听端口
        System.out.println("连接器设置完成: " + conn);
        
        // contextPath要使用的上下文映射,""表示根上下文
        // docBase上下文的
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值