EJB @Singleton @WebListener带注释的类无法在WAR中部署到JBoss 7.1

时间:2014-06-10 14:02:38

标签: web-applications singleton ejb jboss7.x

我正在使用JBoss 7.1在Netbeans 8中开发EJB 3.1的示例: https://netbeans.org/kb/docs/javaee/javaee-entapp-ejb.html

根据EJB 3.1的规范,应该可以在Web模块中使用企业bean。我在web模块中有Singleton会话bean,请看这部分示例: https://netbeans.org/kb/docs/javaee/javaee-entapp-ejb.html#Exercise_3a

如果我使用@Singleton@LocalBean注释,则可以部署应用程序。
如果我添加@WebListener,则无法部署,错误说:

Caused by: java.lang.RuntimeException: JBAS018043: ejb.SessionManagerBean has the wrong component type, it cannot be used as a web component

有人可以帮忙吗?

注意:示例在Glassfish服务器上演示,我必须使用JBoss 7.1。我在这里错过了什么吗?

1 个答案:

答案 0 :(得分:0)

JBoss似乎不允许WebService或WebListener也是EJB ..

如上所述,解决方案是创建一个单独的@RequestScoped @WebService@WebListener来注入和调用EJB方法。