PF推送计数器示例不能使用ajax

时间:2016-06-06 10:42:08

标签: ajax sockets primefaces push

我在WebSphere Portal 7上使用PF Push(PF 5.3)时遇到了问题,因此我尝试使用PF 4进行推送。我使用文档中的计数器示例进行测试。

的web.xml

<servlet>
      <servlet-name>Push Servlet</servlet-name>
      <servlet-class>org.primefaces.push.PushServlet</servlet-class>
</servlet>

<servlet-mapping>
      <servlet-name>Push Servlet</servlet-name>
      <url-pattern>/primepush/*</url-pattern>
</servlet-mapping>

bean(应用程序范围):

private int count;

public void setCount(int count) {
   this.count = count;
}

public int getCount() {
   return count;
}

public synchronized void increment() {
      count++;
      PushContext pushContext = PushContextFactory.getDefault().getPushContext();
      pushContext.push("/counter", String.valueOf(count));
}

首先,我尝试使用JS代码更新计数器并且它有效:

<h:form>
   <h:outputText id="counter" value="#{bean.count}" styleClass="display" />
   <p:commandButton value="Click" actionListener="#{bean.increment}" />
</h:form>

<p:socket channel="/counter" onMessage="handleMessage" />

<script type="text/javascript">
            function handleMessage(data) {
                $('.display').html(data); 
            }
</script>

上面的示例工作正常,但如果我尝试使用ajax更新计数器:

<p:socket channel="/counter" >
   <p:ajax event="message" update="@(.display)" />
</p:socket>

计数器未更新。在门户网站(WAS 8)控制台中没有错误/异常,在Chrome中也看起来不错。只有Firefox和IE显示错误消息,但我不确定它们的含义。

Chrome控制台: enter image description here

Firefox控制台: enter image description here

IE控制台: enter image description here

在FF控制台中,当我点击&#39; counter:2:1&#39;链接,显示推送数据,如:

12|{"data":"4"}

这甚至是正确的响应格式吗?

PS:使用WebSphere Portal 7(WAS 8),PF 4.0,Atmosphere runtime 2.0.1

0 个答案:

没有答案