Jsf ApacheTomcat和TOMEE

Jsf ApacheTomcat和TOMEE,jsf,tomcat,apache-tomee,Jsf,Tomcat,Apache Tomee,我不明白为什么我可以在tomcat中使用JSF,因为在这个图中tomcat不接受JSF: 我使用的是Tomcat7,一切正常。我在pom.xml中添加了JSF的依赖项。如果在tomcat中使用JSF,使用TomEE有什么好处?您有像tomcat、TomEE或Websphere这样的应用服务器。 它们提供了一组javaeelib,如JSF、servlet、JPA、JavaMail等 如果您使用的是Tomcat,您仍然可以通过自己在应用程序中提供JSF库来使用JSF 使用Maven(pom.xml

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


我使用的是Tomcat7,一切正常。我在pom.xml中添加了JSF的依赖项。如果在tomcat中使用JSF,使用TomEE有什么好处?

您有像tomcat、TomEE或Websphere这样的应用服务器。 它们提供了一组javaeelib,如JSF、servlet、JPA、JavaMail等

如果您使用的是Tomcat,您仍然可以通过自己在应用程序中提供JSF库来使用JSF

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

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


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

您有像Tomcat、TomEE或Websphere这样的应用程序服务器。 它们提供了一组javaeelib,如JSF、servlet、JPA、JavaMail等

如果您使用的是Tomcat,您仍然可以通过自己在应用程序中提供JSF库来使用JSF

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

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


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

该表仅显示服务器已提供的库,无需自行安装。相关:所以,唯一的区别是我不需要将这个libs添加到pom.xml?TomEE已经提供给我了?您可能在构建时仍然需要依赖关系,但在部署时不需要。除非您想要一个不同于TomEE提供给您的版本。今天我使用tomcat,我想改为TomEE,因为我需要使用EJB异步。如果进行此迁移,我需要从pom.XML中删除jee API库?(Jpa,jsf…)?为什么不在问题中包含这些信息?任何有助于理解你的动机的东西都有助于创造一个更好的(匹配的)答案。请记住这一点,为您的下一个问题-并注意,现在还不算太晚,编辑这个问题,以加强它。这甚至与已经接受的答案相匹配。该表仅显示服务器已经提供的库,而无需自己安装。相关:所以,唯一的区别是我不需要将这个libs添加到pom.xml?TomEE已经提供给我了?您可能在构建时仍然需要依赖关系,但在部署时不需要。除非您想要一个不同于TomEE提供给您的版本。今天我使用tomcat,我想改为TomEE,因为我需要使用EJB异步。如果进行此迁移,我需要从pom.XML中删除jee API库?(Jpa,jsf…)?为什么不在问题中包含这些信息?任何有助于理解你的动机的东西都有助于创造一个更好的(匹配的)答案。请记住这一点,为您的下一个问题-并注意,现在还不算太晚,编辑这个问题,以加强它。这甚至与已经接受的答案相匹配。