jboss 7.1 jndi 以编程方式绑定(bind)

标签 jboss jndi

如何在 jboss 7.1 上以编程方式绑定(bind)到 jndi 自定义对象? Context.bind 抛出异常表明 jndi 上下文是只读的。 有可能吗?

最佳答案

是的,完全有可能。以下代码适用于 JBoss AS 7.1.1.Final:

@Stateless
public class JndiEjb {
    private static final Logger LOGGER = LoggerFactory.getLogger(JndiEjb.class);

    public void registerInJndi() {
        try {
            Context context = new InitialContext();
            context.bind("java:global/JndiEjb", this);
        } catch (NamingException e) {
            LOGGER.error(String.format("Failed to register bean in jndi: %s", e.getMessage()));
        }
    }

    public void retrieveFromJndi() {
        try {
            Context context = new InitialContext();
            Object lookup = context.lookup("java:global/JndiEjb");
            if(lookup != null && lookup instanceof  JndiEjb) {
                LOGGER.debug("Retrieval successful.");
                JndiEjb jndiEjb = (JndiEjb)lookup;
                jndiEjb.helloWorld();
            }
        } catch (NamingException e) {
            LOGGER.error(String.format("Failed to register bean in jndi: %s", e.getMessage()));
        }
    }

    public void helloWorld() {
        LOGGER.info("Hello world!");
    }
}

如果您先调用 registerInJndi(),然后调用 retrieveFromJndi(),将查找对象并调用方法 helloWorld() .

您会找到更多信息here .

关于jboss 7.1 jndi 以编程方式绑定(bind),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19429149/

相关文章:

jndi - 如何删除 JNDI 名称中的版本号、Jboss EAP 6、EJB 3.1

java - 如何管理连接池

logging - 为给定协议(protocol)实例设置 JGroups 的协议(protocol)日志级别

jboss - 我想制作一个在 JBoss 中运行的 UDP 服务器/监听器

tomcat - JSPWiki/Tomcat — 每个 webapp 有几个 JNDIReamls

java - Spring & JNDI : locate resource platform independent

java - 使用 JNDI 添加 LDAP 条目

javax.naming.NoInitialContextException : Need to specify class name in environment or system property

JBOSS,如何添加依赖javax.jmx?

java - 无法将 mysql 驱动程序与 Wildfly 9.0.2 一起使用,但它似乎已正确加载