3

我试图使用 JBoss WildFly 12.0.0.Final获取 BalusC 的 JSF 2.3+ 示例(服务器如何将异步更改推送到由 JSF 创建的 HTML 页面? )

我添加了 JBoss JSF JAR:

jboss-jsf-api_2.3_spec-2.3.3.SP1.jar

但是,当我尝试显示具有以下内容的 XHTML 页面时:

<h:form>
    <f:websocket channel="push">
        <f:ajax event="updateNotifications" render=":panelGridSelect" />
    </f:websocket>
</h:form>

我得到:

javax.faces.view.facelets.TagException: /enterProduct.xhtml @61,45 标签库支持命名空间: http: //xmlns.jcp.org/jsf/core,但没有为名称定义标签:websocket

在 IntelliJ IDEA 中:

f:websocket

显示为红色,好像找不到?

f:websocket 的标签库在哪里?

4

1 回答 1

7

f:websocket自 JSF 2.3 起可用,尽管 Wildfly 12 包含一些JavaEE 8 功能,但它默认以 JavaEE 7 模式启动,即“只是”JSF 2.2。

从最近的(编辑:在撰写本文时 ;-))WildFly 12 发布文档

默认情况下,WildFly 12 以 EE7 模式启动。为了使用这些新功能,您必须启用 EE8 预览模式。这可以通过在启动期间传递 ee8.preview.mode 属性来完成:

./standalone.sh -Dee8.preview.mode=true

还有其他选项可以启用此功能。来自相同的文档:

或者,这可以通过使用新的standalone-ee8.xml 配置启动服务器来实现,该配置只是在配置中包含该属性。

./standalone.sh -c standalone-ee8.xml

CLI 也可用于修改现有配置以添加此属性。例如:

embed-server --admin-only=true /system-property=ee8.preview.mode:add(value=true) stop-embedded-server

然后你应该有 JSF 2.3 和f:websockets

于 2018-04-16T11:29:06.467 回答