首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在发布的Tomcat 10上运行Vaadin 7/8 web应用程序是否存在已知的兼容性问题?

在发布的Tomcat 10上运行Vaadin 7/8 web应用程序是否存在已知的兼容性问题?
EN

Stack Overflow用户
提问于 2021-05-20 22:00:01
回答 1查看 230关注 0票数 2

我想知道目前VAADIN的7/8版本和tomcat 10之间是否存在兼容性问题。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-05-21 00:27:08

tl;dr

  • 猫猫9和10基本上是一样的。
    • 唯一的区别分别是javax.*包命名和jakarta.*

  • 目前,对于Vaadin,使用Tomcat 9,而不是10。

对于Tomcat的竞争对手来说也是如此。示例:使用Jetty 10,而不是11。

jakarta.*

是的,有一个简单但很大的问题。

Vaadin仍然被编码到构建它的Java技术的javax.*包命名中。这包括Servlet技术。

随着甲骨文将Java技术的责任转移到Eclipse基金会,这些技术的命名已经从Java转变为https://en.wikipedia.org/wiki/Jakarta_EE (Java™是Oracle的商标 )。作为转换的一部分,Jakarta技术中定义的接口和类的包名正在从javax.*更改为jakarta.*

这个新的包名是一个为Java编写的几十年软件的突破性更改。虽然这是一个不幸的问题,但修复非常简单:在所有源文件的顶部重命名包行。

Jakarta项目正是在Jakarta的第9版中做到了这一点。大多数相关技术都增加了各自的版本号,但在其他方面与以前的版本基本相同(重命名其包是唯一的重大更改)。参见来自Eclipse,https://www.eclipse.org/community/eclipse_newsletter/2020/november/1.php的2020年通讯。

Tomcat项目现在运行两个并行版本:9和10。

  • Tomcat 9使用旧包命名:javax.*
  • Tomcat 10使用新的包命名:jakarta.*

两者同时正在发展;10并不比9“好”。

如果启动格林菲尔德项目,并且只使用更改包名的库,则可以选择使用Tomcat 10。

如果使用尚未更改包名的库,请使用Tomcat 9。Vaadin是一个仍然使用旧包名的库。

因此,就目前而言,您的Vaadin项目应该使用Tomcat的版本9而不是10运行。这里没有损失,因为Tomcat 9和10本质上是一样的。

目前还没有迫切需要进行javax.*jakarta.*的过渡。最终,我预计我们将看到Vaadin向新包命名过渡的版本。在Vaadin阵营以及更广泛的Jakarta世界中,都有关于工具来帮助这种改变的讨论,尽管我不知道他们目前的状况。

当然,Tomcat的其他替代品/竞争对手也在经历同样的过渡痛苦。例如,Eclipse 11使用新包命名而Jetty 10是并行开发的,具有相同的特性集,正如WebTide在这个职位中所解释的那样。如果在Vaadin开发或部署中使用Jetty,则使用Jetty 10而不是11。

Servlet 3.1

今天(2021-05年)的所有版本都是基于Servlet3.1规范构建的,而不是Servlet 4或Servlet 5。请参阅文档页,https://tomcat.apache.org/whichversion.html获得Tomcat支持哪个Servlet规范的表。

因此,即使是Tomcat 9在这方面也没有必要。Tomcat8.5支持Servlet3.1,因此对于当前的Vaadin应用程序来说,它就足够了。FYI,Tomcat 8.5最初是从早期Tomcat 9中分叉而来的,并且包含了大多数相同的特性。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67628471

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档