我一直在尝试让 PrimePush 在运行在 Tomcat 7 上的 Web 应用程序上工作。我花了一整天的时间搜索线程和 StackOverFlow,但还没有找到解决方案!其中一些包括,这个和这个以及其他几个!任何帮助,将不胜感激!
我按照 PrimeFaces 用户指南设置 PrimePush。我的设置是 Tomcat7、PrimeFaces 3.5、Atmosphere 1.0.0.RC1、GlassFish 2.1.17 / WEB 2.2。
因此,我有以下依赖项;
<dependency>
<groupId>org.primefaces</groupId>
<artifactId>primefaces</artifactId>
<version>3.5</version>
</dependency>
<dependency>
<groupId>org.glassfish</groupId>
<artifactId>javax.faces</artifactId>
<version>2.1.17</version>
</dependency>
<dependency>
<groupId>org.glassfish.web</groupId>
<artifactId>el-impl</artifactId>
<version>2.2</version>
</dependency>
<dependency>
<groupId>org.atmosphere</groupId>
<artifactId>atmosphere-runtime</artifactId>
<version>1.0.0.RC1</version>
<scope>compile</scope>
</dependency>
我的 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>
我一直在尝试 PrimeFaces 展示中的 Push 示例。每当我尝试从我的托管bean中推送时;
PushContext p = PushContextFactory.getDefault().getPushContext();
p.push("/counter", String.valueOf(count));
我收到以下错误:
org.eclipse.virgo.kernel.osgi.framework.ExtendedNoClassDefFoundError: org/atmosphere/cpr/AsyncSupportListenerAdapter in KernelBundleClassLoader: [bundle=org.primefaces_3.5.0] in KernelBundleClassLoader: [bundle=org.primefaces_3.5.0]
...
...
...
Caused by: java.lang.ClassNotFoundException: org.atmosphere.cpr.AsyncSupportListenerAdapter
请询问是否需要更多信息/详细信息。提前致谢。