【发布时间】:2011-09-05 00:39:02
【问题描述】:
还有什么情况吗(鉴于Java EE6有java:global/、app/、module/命名 标准)是否需要像下面的示例一样声明 EJB 或资源?
@EJB (name = "ejb/PlaceBid", beanInterface = PlaceBid.class)
public class ActionBazaarBidControllerServlet extends HttpServlet {
}
在ActionBazaarBidControllerServlet使用的帮助器类中查找PlaceBid
PlaceBid placeBid = (PlaceBid)context.lookup("java:comp/env/ejb/PlaceBid");
【问题讨论】:
-
为什么要将 servlet 声明为
@EJB? -
可能是在 servlet 中使用非托管的辅助类(非实体)?
-
我不明白这有什么不同...
-
@Matt 类级别的 EJB 注释没有将 servlet 声明为“作为 EJB”,它在 servlet 组件命名空间内声明了一个 EJB 引用。 @Onur,也许您可以澄清“像这样”的意思?您的意思是“为什么要在 java:comp 而不是 java:module 中声明类级引用”?
-
@Matt,添加到 bkail:简单地说,@EJB 将 PlaceBid 引用插入到 JNDI 中。以这种方式使用的注释相当混乱。也许@ENC 或@JNDI 会更清楚。对于不经意的读者(有时甚至是有经验的读者!),它确实读起来好像该类被声明为 EJB,但为此使用了注解 @Stateless、@Stateful、@Singleton 和 @MessageDriven。
标签: java jakarta-ee ejb-3.0 jndi