警告:页面声明命名空间 http://xmlns.jcp.org/jsf/core 没有与 TomEE 上的 JSF 中的命名空间关联的 TagLibrary

Warning: The page declares namespace http://xmlns.jcp.org/jsf/core no TagLibrary associated to namespace in JSF on TomEE

我正在尝试创建一个页面来验证 url 参数并在参数不存在时重定向到错误页面。

在 TomEE 1.7.3 和 Eclipse 上开发。项目设置为开发模式。我的目标是 JSF 2.2。

我用过这些问题:

我的代码有效,但是我在 Eclipse 和服务器上收到警告:

如何消除这些警告?这些也会在生产环境中显示吗?

首先,TomEE 1.7.x 附带 JSF 2.1,而不是 2.2。迁移的 xmlns.jcp.org 命名空间域仅在 JSF 2.2 之后可用。除非您手动升级 TomEE 本身以使用 JSF 2.2,否则这根本不起作用,您应该继续使用 java.sun.com XML 命名空间域。


How can I rid of these warnings?

在项目的构建路径中有一个具体的 JSF 2.2 实现 JAR 文件。对于 Java EE 服务器,这通常是通过在项目属性中将服务器设置为 Targeted Runtime 来完成的。然后服务器插件将 auto-reference 服务器自己的库放在 构建路径 中。显然,这只有在服务器插件正常并且您已正确升级服务器本身以实际使用 JSF 2.2 时才能正常工作。

如果还是不行(因为服务器插件不好),那么下载单独的 JSF 实现 JAR 文件,把它放在项目的某个地方(但不要放在 /WEB-INF/lib 中,否则会与服务器的冲突在 运行 时间内拥有 JSF impl,并在所有地方引起 class/method/abstract 相关异常),并将其添加到项目的 Build Path.


Will these show in Production environment too?

我无法想象生产服务器通常不会通过 IDE 运行 服务器,并且 HTTP 客户端通常无法监控服务器的 VGA 输出。