在加載頁面時發生,除了parcer沒有找到頻道空間或者無法讀取某些字符。我正在使用primefaces的聊天示例,顯然我試圖打開通道時出現異常
<p:socket onMessage="handleMessage" channel="/{room}" autoConnect="false" widgetVar='subscriber' />
所致:
java.lang.IllegalArgumentException異常:[/上下文/ primepush/{室}]不是一個有效的URL片段。考慮編碼URL的相關部分,在我的豆
public void login(BLogin log) { RequestContext requestContext = RequestContext.getCurrentInstance(); username=log.getLogNombres()+" "+log.getLogApellidos(); if(users.contains(username)) { //loggedIn = false; //FacesContext.getCurrentInstance().addMessage(null, new FacesMessage(FacesMessage.SEVERITY_ERROR, "Username taken", "Try with another username.")); //requestContext.update("growl"); // requestContext.execute("PF('subscriber').connect('/" + username + "')"); loggedIn = true; } else{ users.add(username); requestContext.execute("PF('subscriber').connect('/" + username + "')"); loggedIn = true; } }
我XHTML
[類org.ocpsoft.urlbuilder.util.Encoder]
我的web.xml
<servlet>
<servlet-name>Push Servlet</servlet-name>
<servlet-class>org.primefaces.push.PushServlet</servlet-class>
<load-on-startup>1</load-on-startup>
<async-supported>true</async-supported>
</servlet>
<servlet-mapping>
<servlet-name>Push Servlet</servlet-name>
<url-pattern>/primepush/*</url-pattern>
</servlet-mapping>
<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.
請包括相關的代碼。 – Julian
請以適當的格式發佈代碼(不作爲評論)。這樣讀取幾乎是不可能的。我用你最初發布的代碼更新了你的問題。從那以後,你已經更新了你的評論。你會得到更多的答案是你的代碼很容易閱讀。 – Julian
好吧!我仍然無法找到解決辦法 –