javax.naming.NameNotFoundException:在上下文中找不到名称ejb / com“java:comp / env”

时间:2014-09-08 19:07:38

标签: java ejb-3.0 jndi

错误消息如标题中所述。下面的代码片段用于不同项目包的不同位置。正确定义了ejb-jar.xml和绑定文件。我问的主要原因是我不确定为什么它在某些地方运作良好,而在另一些地方运作不好。

Context context = (Context)initialContext.lookup("java:comp/env");
Object localObj = context.lookup("ejb/com/notification");

1 个答案:

答案 0 :(得分:1)

通常最好只使用一行:

Object localObj = context.lookup("java:comp/env/ejb/com/notification");

并且由于您使用的是java:comp/env,因此必须使用部署描述符或注释定义ejb引用。对于Web模块中使用的类,必须在web.xml(或任何servlet中的EJB注释)中定义,对于从EJB组件使用的类,必须在每个父组件中定义它们。 EJB再次使用ejb-jar.xml或注释。