Tomcat 9.0.71自定义协议处理器配置疑问
Tomcat 9.0.71自定义协议处理器配置疑问
你好,针对你在Tomcat 9.0.71中配置自定义协议处理器遇到的问题,我来给你梳理下实用的解决方案和相关疑问解答:
最佳配置方法:避免修改catalina.sh
你提到不想修改官方维护的catalina.sh,这个思路非常正确——直接修改官方脚本会导致后续Tomcat更新时丢失配置,还可能引发兼容问题。推荐使用Tomcat专门提供的setenv.sh(Windows环境是setenv.bat)来添加自定义配置:
- 在Tomcat的
bin目录下创建setenv.sh文件(如果已经存在就直接编辑) - 在文件中添加你的自定义JVM参数,这样Tomcat启动时会自动加载这个脚本里的配置,不会被官方脚本覆盖或影响
是否需要同时保留两个包?
是的,必须同时保留org.apache.catalina.webresources和com.ibm.crypto.provider。前者是Tomcat处理Web资源协议(比如war:、jar:等)的核心依赖,去掉会导致Tomcat无法正常加载Web应用的静态资源、依赖包等,引发启动或运行错误。
多包拼接的语法
Java的java.protocol.handler.pkgs参数支持多个包路径,用**竖线(|)**分隔即可。正确的配置格式如下:
-Djava.protocol.handler.pkgs=com.ibm.crypto.provider|org.apache.catalina.webresources
具体配置示例
在setenv.sh中添加以下内容即可:
CATALINA_OPTS="$CATALINA_OPTS -Djava.protocol.handler.pkgs=com.ibm.crypto.provider|org.apache.catalina.webresources"
这里用CATALINA_OPTS而非JAVA_OPTS是更规范的做法——CATALINA_OPTS是Tomcat专属的JVM参数变量,不会和其他Java应用的配置冲突;当然如果你的环境中只有Tomcat使用这个变量,用JAVA_OPTS也能生效,但优先推荐CATALINA_OPTS。
备注:内容来源于stack exchange,提问作者Dave Breeze
相关产品推荐
相关产品推荐

