tomcat10安装问题

本文章是在Linux系统环境下, 原理适用windows, 应该也适用其它Tomcat版本.

JDK17没有jre问题

只指定JAVA_HOME就可以了. 新版的JDK(JDK9,11,13,17)的确不包含JRE. 虽然jre可以使用下面的命令生成(会生成到当前目录下),但是不要这么干,因为tomcat只能使用jdk和jre其中之一启动,如果用jre启动后面还有坑. jlink --module-path jmods --add-modules java.desktop --output jre

使用jre启动报错

WARNING: Unknown module: java.rmi specified to --add-opens Exception in thread "main" java.lang.NoClassDefFoundError: java/util/logging/Logger

把jre环境变量去掉,只保留JAVA_HOME就可以了

setenv.sh指定JAVA_OPTS问题

JDK8(含)以后,永久代被移除了,所以虚拟机的启动参数PermSize和MaxPermSize不可用。 去掉这两个参数就行了.

HTTPS配置问题

这个问题在网上找了很多,各种配置的都有,费半天劲都没解决我的问题.最后还是看日志一个一个解决问题靠谱.

使用不同的插件执行SSL配置不同,详见官网配置说明 我用的是Tomcat Native Control,配置如下

xml 复制代码
    <Connector port="8083" protocol="org.apache.coyote.http11.Http11NioProtocol"
            maxThreads="150" SSLEnabled="true" scheme="https" secure="true"
            clientAuth="false"
            maxHttpHeaderSize="8192"
            >
        <UpgradeProtocol className="org.apache.coyote.http2.Http2Protocol" />
        <SSLHostConfig sslProtocol="TLS">
            <Certificate certificateKeystoreFile="conf/yilv/yilvzhuan.com.pfx"
            certificateKeystorePassword="xxx"
            type="RSA" />
        </SSLHostConfig>
   </Connector>

如果还有什么问题, 详细看一下错误日志 catalina.out里的错误

initializeSSL

缺少或找不到依赖安装依赖就行了。

  1. 报错: The Apache Tomcat Native library which allows using OpenSSL was not found on the java.library.path: /usr/java/packages/lib:/usr/lib64:/lib64:/lib:/usr/lib 有两种可能: 原因1: Apache Tomcat Native没装 解决办法: 百度一下安装方法

原因2: 装了,但是不在给的这些路径里 在 bin/setclasspath.sh 最前面增加环境变量LD_LIBRARY_PATH的配置, 需要将Apache Tomcat Native的目录加进去, 我的装在了$CATALINA_HOME/lib里。或者你会用libtool工具把lib复制一份到原因1的路径里.

shell 复制代码
LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$CATALINA_HOME/lib
export LD_LIBRARY_PATH

No SSLHostConfig element

日志显示OpenSSL successfully initialized 但后面报错 No SSLHostConfig element was found with the hostName *default* to match the defaultSSLHostConfigName for the connector https-openssl-nio-8443 那就是配置里的Connector下缺少SSLHostConfig配置,对照我的配置或官网的配置纠正一下.

相关推荐
To_OC6 小时前
从一头雾水到跑通全流程:我用一个周末啃透了JWT登录鉴权
前端·后端·http
前端兰博7 小时前
05-Redis
redis·后端
databook8 小时前
从手动检查到自动监控:一个数据质量工作流的实现
后端·python·数据分析
【JAVA】玩家8 小时前
Spring核心原理全解析:从零到生产实战
java·后端·spring
东风破_8 小时前
从 Neo4j 到 GraphRAG:用 Text-to-Cypher 构建图检索 RAG
人工智能·后端
llqbzllll10 小时前
Spring AI 工具调用不是反射一下就结束:用 2.0.1 跑通失败恢复与调用上限
人工智能·后端
狼爷10 小时前
Rust/Go/Java/Python/PHP 大比拼:负载下后端框架到底差多少?
java·后端·编程语言
mantou13211 小时前
我给 AI Agent 做了个「油猴」:让 Claude Code / Codex 直接用你已登录的浏览器
前端·javascript·后端
程序员老赵11 小时前
Docker 部署 DeepSeek Harness:轻松搭建局域网里的 AI Agent 平台
后端·ai编程·deepseek
YIAN11 小时前
实战|用 DeepSeek + SQLite 从零搭建轻量 Text2SQL 查询助手
后端·sqlite·deepseek