阿帕奇 Tomcat 和 TOMEE

Apache Tomcat and TOMEE

我不明白为什么我可以在 tomcat 中使用 JSF,因为在这张图片中 TOMCAT 不接受 JSF:

我正在使用 TOMCAT 7,一切正常。我在pom.xml中添加了JSF的依赖。如果在 tomcat 中使用 JSF,使用 TomEE 有什么优势?

您有 Tomcat、TomEE 或 Websphere 等应用程序服务器。 这些提供了一组 Java EE-Libs,如 JSF、Servlets、JPA、JavaMail 等。

如果您正在使用 Tomcat,您仍然可以通过自己在应用程序中提供 JSF-Lib 来使用 JSF。

使用 Maven (pom.xml),您可以定义您的应用需要什么,例如 JSF 或 JPA,这些信息是编译所需要的。即使您使用像 TomEE 这样的应用程序服务器,您仍然必须声明您需要什么,以便编译工作。

唯一的区别是 Maven 依赖范围 - 如果您使用 Java EE 应用程序服务器,您应该使用范围 provided,因为应用程序服务器具有您需要的所有库.如果您只使用 Tomcat,您将需要(默认)范围 compile - 它将 Libs 包含到您的工件(*.war-文件)中。

如果您使用应用程序服务器,请确保您 pom.xml 中的版本与您的应用程序服务器中使用的版本匹配,否则可能会发生,您为 JSF 2.2 编写程序,但您的服务器仅支持 2.0.