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

Java 在发布的Tomcat 10上运行Vaadin 7/8 web应用程序是否存在任何已知的兼容性问题?,java,vaadin,vaadin7,tomcat10,Java,Vaadin,Vaadin7,Tomcat10,我想知道VAADIN的7/8版和tomcat 10之间目前是否存在兼容性问题tl;博士 Tomcat 9和10本质上是相同的。 唯一的区别是javax.*包命名分别与jakarta.* 目前对于Vaadin,使用Tomcat 9,而不是10 Tomcat的竞争对手也是如此。示例:使用10号码头,而不是11号码头 雅加达. 是的,有一个简单但大的问题 Vaadin仍然被编码到构建它的JavaEE技术的javax.包命名中。这包括技术 随着JavaEE技术的责任转移到了,这些技术的命名已从

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

tl;博士
  • Tomcat 9和10本质上是相同的。
    • 唯一的区别是
      javax.*
      包命名分别与
      jakarta.*
  • 目前对于Vaadin,使用Tomcat 9,而不是10
Tomcat的竞争对手也是如此。示例:使用10号码头,而不是11号码头

雅加达. 是的,有一个简单但大的问题

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

随着JavaEE技术的责任转移到了,这些技术的命名已从JavaEE更改为(Java)™ 作为甲骨文的一员)。作为这一转变的一部分,雅加达EE技术中定义的接口和类的包名正在从
javax.*
更改为
Jakarta.*

对于为JavaEE编写的几十年的软件来说,这个新的包名是一个突破性的改变。虽然这是一个不幸的问题,但解决方法非常简单:重命名所有源文件顶部的包行

雅加达EE项目在雅加达EE的第9版中就是这样做的。大多数相关技术都增加了各自的版本号,但在其他方面与以前的版本基本相同(重命名软件包是唯一的重大更改)。参见Eclipse基金会的2020个通讯,

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

  • Tomcat 9使用旧的包命名:
    javax.*
  • Tomcat10使用新的包命名:
    jakarta.*
两者同时发展,;10并不比9“好”

如果正在启动一个项目,并且您只使用更改了包名的库,那么您可以选择使用Tomcat 10

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

➥ 因此,现在,您的Vaadin项目应该使用Tomcat的9版而不是10版运行。这里没有损失,因为Tomcat 9和10基本相同

现在还不迫切需要将
javax.*
-转换为-
jakarta.*
转换。最终,我希望我们会看到Vaadin的发行版过渡到新的包命名。在瓦丁阵营和更广泛的雅加达EE世界,都有人谈论使用工具来帮助实现这一变化,尽管我不知道他们目前的状况

当然,Tomcat的其他替代品/竞争对手也在经历同样的转型阵痛。例如,正如WebTide在中所解释的,Jetty 10正在使用相同的功能集进行并行开发。如果您使用Jetty进行Vaadin开发或部署,您将使用Jetty 10而不是11

Servlet 3.1 如今(2021-05)的所有版本都是基于Servlet 3.1而不是Servlet 4或Servlet 5构建的。有关Tomcat支持哪个Servlet规范的表,请参见文档页面


因此,在这方面甚至不需要Tomcat9。Tomcat8.5支持Servlet3.1,因此它可以满足当前Vaadin应用程序的需要。仅供参考,Tomcat 8.5最初是从早期的Tomcat 9派生出来的,并且包含了几乎相同的功能。

可以用源代码和编译的形式创建应用程序。它与Tomcat10一起分发,因此可以通过将遗留WAR文件放入
webapps javaee
文件夹来部署它。但是我同意:没有必要迁移到Tomcat10.0。另一方面,雅加达EE 10(Tomcat 10.1)将带来一些新功能。@PiotrP.Karwasz如果我理解正确,该迁移工具将更改我的应用程序的源代码以使用雅加达。*命名。但该工具无法改变当前的Vaadin库是根据
javax.*
包名编译的事实。因此,在运行时,Vaadin将无法在web容器(在Tomcat中)中找到必要的Servlet和其他API。迁移工具还转换二进制文件。上次我检查类文件时,支持JAR文件和WAR文件。因此,我们也可以使用Jakaffy Vaadin的运行时,尽管我不会在生产中使用它:它可能会错过一些反射黑客。你问这个问题是因为你面临一个问题吗?请添加有关它的信息,如日志、堆栈跟踪、错误。。。