Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/jsf/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jsf 我使用的是primefaces聊天的例子,显然我在尝试打开频道时出现了一个异常_Jsf_Primefaces_Xhtml_Prettyfaces - Fatal编程技术网

Jsf 我使用的是primefaces聊天的例子,显然我在尝试打开频道时出现了一个异常

Jsf 我使用的是primefaces聊天的例子,显然我在尝试打开频道时出现了一个异常,jsf,primefaces,xhtml,prettyfaces,Jsf,Primefaces,Xhtml,Prettyfaces,在加载页面时发生,除了包裹员找不到通道室或无法读取某些字符外 <p:socket onMessage="handleMessage" channel="/{room}" autoConnect="false" widgetVar='subscriber' /> 我的xhtml <f:metadata> <f:event type="preRenderView" listener="#{chatView.login(bLoginControl

在加载页面时发生,除了包裹员找不到通道室或无法读取某些字符外

<p:socket onMessage="handleMessage" channel="/{room}" autoConnect="false" widgetVar='subscriber' />
我的xhtml

<f:metadata>
            <f:event type="preRenderView" listener="#{chatView.login(bLoginController.getbLogin())}" />
        </f:metadata>
            <p:growl id="growl" showDetail="true"/>
            <p:socket onMessage="handleMessage" channel="/{room}" autoConnect="false" widgetVar='subscriber' />
            <script type="text/javascript">
                function handleMessage(message) {
                    var chatContent = $(PrimeFaces.escapeClientId('form:public')),
                            text = (message.user) ? message.user + ':' + message.text : message.text;

                    chatContent.append(text + '<br />');

                    //keep scroll
                    chatContent.scrollTop(chatContent.height());

                    if (message.updateList) {
                        updateList();
                    }
                }
            </script>

发生此错误的原因是Rewrite/PrettyFaces无法解析相应的URL。这可能是因为您使用的是2013年的Rewrite/PrettyFaces的一个非常旧的版本。请更新至3.4.1.1最终版本。在最新版本中有一些关于URL解析的错误修复,我相信更新将解决您的问题

见:

解决方案是只写/room而不写亲属,并且正确创建了连接

<p:socket onMessage="handleMessage" channel="/room" autoConnect="false" widgetVar='subscriber' />


请包含相关代码。请以正确的格式在问题中发布代码(不要作为注释)。这样读几乎是不可能的。我已经用你最初发布的代码更新了你的问题。从那以后,你更新了你的评论。你会得到更多的答案,因为你的代码很容易阅读。好的!我还是找不到解决问题的办法。你得耐心点。有些问题需要几天的时间才能让人回答。请确保您使用的是最新版本的Rewrite/PrettyFaces。IIRC在一个最新版本中对此问题进行了修复。我将prettyfaces的版本更改为3.4.1,并生成相同的错误org.ocpsoft.rewrite-rewrite-servlet 3.4.2.Final
<f:metadata>
            <f:event type="preRenderView" listener="#{chatView.login(bLoginController.getbLogin())}" />
        </f:metadata>
            <p:growl id="growl" showDetail="true"/>
            <p:socket onMessage="handleMessage" channel="/{room}" autoConnect="false" widgetVar='subscriber' />
            <script type="text/javascript">
                function handleMessage(message) {
                    var chatContent = $(PrimeFaces.escapeClientId('form:public')),
                            text = (message.user) ? message.user + ':' + message.text : message.text;

                    chatContent.append(text + '<br />');

                    //keep scroll
                    chatContent.scrollTop(chatContent.height());

                    if (message.updateList) {
                        updateList();
                    }
                }
            </script>
        <p:socket onMessage="handleMessage" channel="/%7Broom%7D"  
16:16:21,998 SEVERE [javax.enterprise.resource.webcontainer.jsf.application] (default task-16) Error Rendering View[/pages/home.xhtml]: java.lang.IllegalStateException: No parameter [room] was set in the pattern [/context/primepush/{room}]. Call address.set("room", value); or remove the parameter from the pattern.
<p:socket onMessage="handleMessage" channel="/room" autoConnect="false" widgetVar='subscriber' />