公司采购流程走到一半,同事被问了一句:Tomcat 要不要买授权?他愣住了,因为项目里用的一直是官网下的压缩包,从来没付过钱。这个问题其实不难答,但要说清楚,得拆成两件事。

Tomcat 是 Apache 软件基金会下的项目,许可证是 Apache License 2.0。你可以免费下载、免费商用、改源码、打包进自己的产品,甚至随产品一起卖。条件是保留版权声明和 NOTICE 文件,别把原作者的名字抹掉。官网地址是 tomcat.apache.org,压缩包解压后配好 JAVA_HOME,跑 bin/startup.sh 就能起来。

开源的是软件,不是服务和人力

很多人把开源和免费支持混在一起。软件本身不要钱,但出了线上事故,没人有义务半夜接你电话。真要兜底,可以买商业支持,或者用 Spring Boot 内嵌 Tomcat,跟着框架的补丁节奏走,省掉自己升版本的活。

还有一层容易被忽略:Tomcat 跑在 JVM 上,JDK 的授权是另一回事。Oracle JDK 新版本按商用场景收费,OpenJDK 的发行版比如 Temurin、Dragonwell 则没有这个问题。采购问的如果是整体授权,把这两块分开讲清楚就行。

版本和落地时的几个具体点

  • 版本对应:Tomcat 9 对应 Servlet 4.0,Tomcat 10 开始包名从 javax 改成 jakarta,老项目直接升会报 ClassNotFound
  • 配置文件:端口在 conf/server.xml 的 Connector 里,默认 8080,改完要重启才生效
  • 日志:catalina.out 会一直涨,建议配 logrotate 或者改 logging.properties 控制大小
  • 部署方式:把 war 丢进 webapps 会自动解压,生产更常见的是在 context.xml 里配 docBase 指向外部目录

另外提一句,Apache 基金会不允许第三方修改版继续叫 Tomcat,所以很多厂商的中间件会换个名字。这不影响它开源的属性,只是商标规则。

判断很简单:自己维护、能接受社区响应速度,用开源版就够;有合规审计或者要 SLA,再谈商业支持。别为了一个许可证问题把技术选型推翻。