f:JSF 2.3中的websocket

NOT*_*iFY 1 jsf websocket wildfly jsf-2.3

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

我添加了JBoss JSF JAR:

jboss-jsf-api_2.3_spec-2.3.3.SP1.jar
Run Code Online (Sandbox Code Playgroud)

但是,当我尝试显示我的XHTML页面时,它具有:

<h:form>
    <f:websocket channel="push">
        <f:ajax event="updateNotifications" render=":panelGridSelect" />
    </f:websocket>
</h:form>
Run Code Online (Sandbox Code Playgroud)

我明白了:

javax.faces.view.facelets.TagException:/enterProduct.xhtml @ 61,45标记库支持的命名空间: http://xmlns.jcp.org/jsf/core,但没有标签被用于名定义:的WebSocket

在IntelliJ IDEA中:

f:websocket
Run Code Online (Sandbox Code Playgroud)

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

f:websocket的taglib在哪里?

Kuk*_*tje 5

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