暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

Tomcat,你升了级,我自闭了

咕呱叫声唧唧唧 2022-02-15
844

不能完全算是bug,但是确实浪费了我一天时间,暂且记下来罢。

环境

pom.xml 部分

<dependency>
   <groupId>javax.websocket</groupId>
   <artifactId>javax.websocket-api</artifactId>
   <version>1.1</version>
   <scope>provided</scope>
</dependency>

Tomcat 10.0.51

Bug

前端通过websocket连接后端失败,经过反复排查,代码逻辑没有问题。翻遍互联网都没有找到解决方案。

解决

<dependency>
   <groupId>jakarta.websocket</groupId>
   <artifactId>jakarta.websocket-api</artifactId>
   <version>2.0.0</version>
   <scope>provided</scope>
</dependency>

原因

原因是软件版本不匹配(or 不兼容?)。在Tomcat官网上找到如下一段话。2017年Oracle决定把Java EE开源,给Eclipse基金会。Java EE的新名字就叫Jakarta EE。

Users of Tomcat 10 onwards should be aware that, as a result of the move from Java EE to Jakarta EE as part of the transfer of Java EE to the Eclipse Foundation, the primary package for all implemented APIs has changed from javax.*
to jakarta.*
.

Servlet SpecJSP SpecEL SpecWebSocket SpecAuthentication (JASIC) SpecApache Tomcat VersionLatest Released VersionSupported Java Versions
6.03.15.0TBDTBD10.1.x10.1.0-M5 (alpha)11 and later
5.03.04.02.02.010.0.x10.0.118 and later
4.02.33.01.11.19.0.x9.0.538 and later
3.12.33.01.11.18.5.x8.5.717 and later
3.12.33.01.1N/A8.0.x (superseded)8.0.53 (superseded)7 and later
3.02.22.21.1N/A7.0.x (archived)7.0.109 (archived)6 and later (7 and later for WebSocket)
2.52.12.1N/AN/A6.0.x (archived)6.0.53 (archived)5 and later
2.42.0N/AN/AN/A5.5.x (archived)5.5.36 (archived)1.4 and later
2.31.2N/AN/AN/A4.1.x (archived)4.1.40 (archived)1.3 and later
2.21.1N/AN/AN/A3.3.x (archived)3.3.2 (archived)1.1 and later

无独有偶,前两天给spring配kafka的环境时,也看到过类似的适配性问题,但由于当时看了看文档,避免了问题的出现。

Spring for Apache Kafka VersionSpring Integration for Apache Kafka Versionkafka-clients
Spring Boot
2.7.x5.4.x2.7.0 or 2.8.02.4.x or 2.5.x
2.6.x5.3.x or 5.4.x2.6.02.3.x or 2.4.x
2.5.x3.3.x2.5.12.3.x
2.4.x~~~~3.2.x~~~~2.4.1~~~~2.2.x (End of Life)~~~~
2.3.x~~~~3.2.x~~~~2.3.1~~~~2.2.x (End of Life)~~~~
2.2.x~~~~3.1.x~~~~2.0.1, 2.1.x, 2.2.x~~~~2.1.x (End of Life)~~~~
2.1.x3.0.x1.0.22.0.x (End of Life)
1.3.x~~~~2.3.x~~~~0.11.0.x, 1.0.x~~~~1.5.x (End of Life)

小结

不要随随便便配环境,配环境之前,多看看文档,确认相应的版本是否稳定、是否匹配。

文章转载自咕呱叫声唧唧唧,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论