是否可以在一个 EJB 3 bean 中同时使用 @WebService、@Stateless 和 @Singleton?
我正在使用 EJB 3 和 JBoss AS 6.0.0.Final。我有一个带有注释 @Stateless
和 @WebService
的无状态会话 bean。当我添加注释 @Singleton
时,部署出错,显示以下消息:
...name=ServiceBean,service=ejb3 已安装
如何避免部署错误?
I'm using EJB 3 and JBoss AS 6.0.0.Final. I have a stateless session bean with the annotations @Stateless
and @WebService
. When I add the annotation @Singleton
, the deployment is in error showing the message:
...name=ServiceBean, service=ejb3 is already installed
What can I do to avoid the deployment error?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
您可以在同一个 bean 中使用 @WebService 和 @Stateless 或 @WebService 和 @Singleton,如果您想将 POJO 公开为 Web 服务和 EJB,那么这是非常有意义的。
在同一个 bean 中使用 @Stateless 和 @Singleton 没有多大意义。当您使用 @Singleton 时,您正在创建一个具有所有 EJB 功能(事务管理、安全性等)的 EJB,与 @Stateless 完全相同。唯一的区别是容器如何管理 EJB 生命周期:
You can use @WebService and @Stateless or @WebService and @Singleton in the same bean which makes perfectly sense if you want to expose a POJO as both a web service and EJB.
Don't see much sense in using @Stateless and @Singleton in the same bean. When you use @Singleton, you are creating an EJB with all the EJB capabilities (transaction management, security, etc) exactly as with @Stateless. The only difference is how the container manages the EJB lifecycle: