在 JNDI 中查找 ${email.jndi.lookup.binding} 时出错

Error looking up ${email.jndi.lookup.binding} in JNDI

使用 JBoss eap 6.4.12

获取错误:

Error looking up ${email.jndi.lookup.binding} in JNDI

在我的 java 中映射这个 JNDI 名称 class:

@Resource(mappedName = "${email.jndi.lookup.binding}")
    private Session session;

我在构建属性中定义了这个 属性:

email.jndi.lookup.binding=java:/jboss/mail/Default

(在我的构建属性定义中删除 : 之后的 \ 没有任何区别)

我之前在另一个项目中发生过这种情况,其中将 annotation property replacement 属性 更改为 true 有效。但这次不是。

最后只是添加了一个本地 bean

import javax.ejb.LocalBean;
import javax.ejb.Stateless;

@Stateless
@LocalBean
public class DefaultEmailManager  {

    public static final String JNDI_NAME = "java:jboss/mail/Default";

}

然后我在哪里创建我的 Session 对象:

private Session session;

try {
   InitialContext ic = new InitialContext();
   session = (Session)ic.lookup(DefaultEmailManager.JNDI_NAME);

} catch (NamingException e) {
   e.printStackTrace();
}