TomEE1.7.x 的推荐 JSF 依赖项是什么?
What are the recommended JSF dependencies with TomEE1.7.x?
我一直在 TomEE 1.7.3(基于 JavaEE6)上开发 JSF2.0(我不太确定 JSF 版本)应用程序。
在我的 Maven pom.xml 中,我从许多示例中复制了太多依赖项,但我将它们减少到最低要求。下面是我的 pom.xml:
的 "dependencies" 部分
<dependencies>
<!-- JavaEE6 -->
<dependency>
<groupId>javax</groupId>
<artifactId>javaee-api</artifactId>
<version>6.0</version>
</dependency>
<!-- /JavaEE6 -->
<!-- OmniFaces for JSF, @Eager, postback same request parameters, etc. -->
<dependency>
<groupId>org.omnifaces</groupId>
<artifactId>omnifaces</artifactId>
<version>1.8.3</version>
</dependency>
<!-- /OmniFaces -->
<!-- glassfish faces (is it called mojarra??) -->
<dependency>
<groupId>org.glassfish</groupId>
<artifactId>javax.faces</artifactId>
<version>2.2.12</version>
<scope>runtime</scope>
</dependency>
<!-- /glassfish faces -->
<!-- some mysql connector -->
<!-- some aws sdks, s3, ec2, etc -->
<!-- some apache commons, StringUtils. etc -->
<!-- some apache velocity -->
</dependencies>
org.glassfish#javax.faces#2.2.12
依赖也可以去掉,
但它会导致 html 布局问题(使用 bootstrap css)。
将它降级到版本 2.0.x,会导致同样的布局问题。
我知道我可以修复它,但需要几个小时。
我想问的是:
- 在 TomEE1.7.x 中使用 glassfish faces 2.2.x 是好还是坏? TomEE 的描述说它最多只支持 JSF 2.0,但到目前为止,它几乎可以正常工作(我遇到的问题很少,但这些问题似乎与这个版本无关)。
- 删除 glassfish faces 依赖项并改用默认的 MyFaces 是否更好?
- 就我而言,如果我选择 glassfish 服务器而不是 TomEE 会更好吗?
顺便说一句,我昨天问了另一个问题:
JSF2.0 Some facesmessages not sent to redirected page on error handling
而且我认识到我必须先清理我的项目,所以这可能有助于减少我的问题。
谢谢。
正如您自己所说,TomEE 是一个 Java EE 6 容器(而不是像 Tomcat 这样的准系统 JSP/Servlet 容器)。所以它已经(几乎)从 Java EE 6 provided
开箱即用,包括 JSF 2.0/2.1。差不多,因为它实际上是一个 Java EE 网络配置文件容器。所以你实际上应该使用 javaee-web-api
工件 ID。
只有这个就足够了:
<dependency>
<groupId>javax</groupId>
<artifactId>javaee-web-api</artifactId>
<version>6.0</version>
<scope>provided</scope>
</dependency>
作为 Apache 产品,其捆绑的 JSF 实现实际上是 MyFaces,而不是 Mojarra。
如果您打算使用 JSF 2.2,它是 Java EE 7 的一部分,您应该改用 TomEE 7 并更改 pom 中的版本。
<dependency>
<groupId>javax</groupId>
<artifactId>javaee-web-api</artifactId>
<version>7.0</version>
<scope>provided</scope>
</dependency>
本月刚刚发布了一个里程碑,请参阅 downloads page. Alternatives to TomEE 7 are WildFly 8+ or Payara 4+。
另请参阅:
- Our JSF wiki page - 还包含 JSF 安装说明和 Maven 坐标(以及更多有用的入门信息)。
我一直在 TomEE 1.7.3(基于 JavaEE6)上开发 JSF2.0(我不太确定 JSF 版本)应用程序。
在我的 Maven pom.xml 中,我从许多示例中复制了太多依赖项,但我将它们减少到最低要求。下面是我的 pom.xml:
的 "dependencies" 部分<dependencies>
<!-- JavaEE6 -->
<dependency>
<groupId>javax</groupId>
<artifactId>javaee-api</artifactId>
<version>6.0</version>
</dependency>
<!-- /JavaEE6 -->
<!-- OmniFaces for JSF, @Eager, postback same request parameters, etc. -->
<dependency>
<groupId>org.omnifaces</groupId>
<artifactId>omnifaces</artifactId>
<version>1.8.3</version>
</dependency>
<!-- /OmniFaces -->
<!-- glassfish faces (is it called mojarra??) -->
<dependency>
<groupId>org.glassfish</groupId>
<artifactId>javax.faces</artifactId>
<version>2.2.12</version>
<scope>runtime</scope>
</dependency>
<!-- /glassfish faces -->
<!-- some mysql connector -->
<!-- some aws sdks, s3, ec2, etc -->
<!-- some apache commons, StringUtils. etc -->
<!-- some apache velocity -->
</dependencies>
org.glassfish#javax.faces#2.2.12
依赖也可以去掉,
但它会导致 html 布局问题(使用 bootstrap css)。
将它降级到版本 2.0.x,会导致同样的布局问题。
我知道我可以修复它,但需要几个小时。
我想问的是:
- 在 TomEE1.7.x 中使用 glassfish faces 2.2.x 是好还是坏? TomEE 的描述说它最多只支持 JSF 2.0,但到目前为止,它几乎可以正常工作(我遇到的问题很少,但这些问题似乎与这个版本无关)。
- 删除 glassfish faces 依赖项并改用默认的 MyFaces 是否更好?
- 就我而言,如果我选择 glassfish 服务器而不是 TomEE 会更好吗?
顺便说一句,我昨天问了另一个问题: JSF2.0 Some facesmessages not sent to redirected page on error handling
而且我认识到我必须先清理我的项目,所以这可能有助于减少我的问题。
谢谢。
正如您自己所说,TomEE 是一个 Java EE 6 容器(而不是像 Tomcat 这样的准系统 JSP/Servlet 容器)。所以它已经(几乎)从 Java EE 6 provided
开箱即用,包括 JSF 2.0/2.1。差不多,因为它实际上是一个 Java EE 网络配置文件容器。所以你实际上应该使用 javaee-web-api
工件 ID。
只有这个就足够了:
<dependency>
<groupId>javax</groupId>
<artifactId>javaee-web-api</artifactId>
<version>6.0</version>
<scope>provided</scope>
</dependency>
作为 Apache 产品,其捆绑的 JSF 实现实际上是 MyFaces,而不是 Mojarra。
如果您打算使用 JSF 2.2,它是 Java EE 7 的一部分,您应该改用 TomEE 7 并更改 pom 中的版本。
<dependency>
<groupId>javax</groupId>
<artifactId>javaee-web-api</artifactId>
<version>7.0</version>
<scope>provided</scope>
</dependency>
本月刚刚发布了一个里程碑,请参阅 downloads page. Alternatives to TomEE 7 are WildFly 8+ or Payara 4+。
另请参阅:
- Our JSF wiki page - 还包含 JSF 安装说明和 Maven 坐标(以及更多有用的入门信息)。