【问题标题】:Apache Tomcat and TOMEEApache Tomcat 和 TOMEE
【发布时间】:2016-05-15 18:38:05
【问题描述】:

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

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

【问题讨论】:

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

标签: jsf tomcat apache-tomee


【解决方案1】:

您拥有 Tomcat、TomEE 或 Websphere 等应用服务器。 它们提供了一组 Java EE-Lib,如 JSF、Servlet、JPA、JavaMail 等。

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

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

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

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

【讨论】:

    猜你喜欢
    • 2015-08-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-04-02
    • 1970-01-01
    • 2020-09-26
    • 2015-01-01
    • 2018-03-01
    相关资源
    最近更新 更多