由于不推荐使用Primefaces push,我想用f:websocket更改为JSF 2.3。
因此我在我的xhtml中添加了一个websocket:
<h:form>
<f:websocket channel="testChannel" onmessage="socketListener" />
<h:outputScript>
function socketListener(message, channel, event) {
console.log(message);
}
</h:outputScript>
</h:form>
我添加了一个Bean来发送Pushs:
@Named("PushTestBean")
@ApplicationScoped
public class TestPush {
@Inject
@Push(channel = "testChannel")
private PushContext push;
public void test() {
push.send("test");
}
}
在我的web.xml中,我有:
<context-param>
<param-name>javax.faces.ENABLE_WEBSOCKET_ENDPOINT</param-name>
<param-value>true</param-value>
</context-param>
我将所描述的jsf 2.3罐添加到我的wildfly 11.0.0服务器中。编译和部署工作没有任何问题。但是当我导航到带有套接字的页面时,我得到了一个例外:
2018-02-15 22:41:48,224 ERROR [de.digitaljukebox.web.exceptionHandler.CustomExceptionHandler] (default task-96) Error while rendering view: javax.faces.application.ViewHandler.getWebsocketURL(Ljavax/faces/context/FacesContext;Ljava/lang/String;)Ljava/lang/String;