我正在使用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。我在这里错过了什么吗?
答案 0 :(得分:0)
JBoss似乎不允许WebService或WebListener也是EJB ..
如上所述,解决方案是创建一个单独的@RequestScoped
@WebService
或@WebListener
来注入和调用EJB方法。