Jakarta ee Primefaces可以跨档案推动工作吗?

Jakarta ee Primefaces可以跨档案推动工作吗?,jakarta-ee,primefaces,Jakarta Ee,Primefaces,我正在努力让你的工作顺利进行。web端打包在WAR中,MDB打包在JAR中,这些都在EAR中。我正在使用以下组件 玻璃鱼3.1.2 PrimeFaces 3.4.1 Firefox 10.0.7 Linux 我在JAR的消息驱动bean中有以下代码,每次MDB收到消息时,我都希望在web应用程序中显示咆哮消息,但是,这并没有发生。我把战争和罐子装在耳朵里。这可能是因为它不能跨容器工作,或者与我的包装方式有关吗 pushContext = PushContextFactory.getDefault

我正在努力让你的工作顺利进行。web端打包在WAR中,MDB打包在JAR中,这些都在EAR中。我正在使用以下组件

玻璃鱼3.1.2
PrimeFaces 3.4.1
Firefox 10.0.7
Linux

我在JAR的消息驱动bean中有以下代码,每次MDB收到消息时,我都希望在web应用程序中显示咆哮消息,但是,这并没有发生。我把战争和罐子装在耳朵里。这可能是因为它不能跨容器工作,或者与我的包装方式有关吗

pushContext = PushContextFactory.getDefault().getPushContext();
pushContext.push("/test", new FacesMessage("Test Summary", "Test Detail"));
这是战争的web.xml

<servlet>
    <servlet-name>Push Servlet</servlet-name>
    <servlet-class>org.primefaces.push.PushServlet</servlet-class>
    <load-on-startup>1</load-on-startup>
</servlet>

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

<context-param>
    <param-name>primefaces.PUSH_SERVER_URL</param-name>
    <param-value>ws://localhost:8080</param-value>
</context-param>
我的EJB中没有primefaces.jar,但它在lib dir中(如上所示),我在application.xml中有它

<module>
    <ejb>ejb.jar</ejb>
</module>

<library-directory>lib</library-directory>

ejb.jar
解放党

我就是这样做的:所以这是可能的,但问题是如何设置.jar的类路径。你有从mdb调用pushContext.push()时发生的事情的服务器日志吗?我用你最新的评论更新了这个问题。如果你从托管bean调用ppush,你能让它工作吗?浏览器的webconsole中没有任何内容?我真正看到的另一个区别是,我必须在ejb.jar清单中的类路径中添加primefaces/atmosphere
.
|-- META-INF
|   |-- MANIFEST.MF
|   `-- application.xml
|-- ejb.jar
|-- app1.war
|-- lib
|   |-- atmosphere-cometd-1.0.2.jar
|   |-- atmosphere-compat-jbossweb-1.0.2.jar
|   |-- atmosphere-compat-tomcat-1.0.2.jar
|   |-- atmosphere-compat-tomcat7-1.0.2.jar
|   |-- atmosphere-runtime-1.0.2.jar
|   |-- primefaces-3.4.1.jar
|   |-- redmond-1.0.8.jar
|   `-- slf4j-api-1.6.1.jar
`-- otherapp.war 
<module>
    <ejb>ejb.jar</ejb>
</module>

<library-directory>lib</library-directory>