jboss 7.1 jndi绑定的编程方式
如何在JBoss7.1上以编程方式绑定到jndi自定义对象? Context.bind引发异常,指示jndi上下文为只读。jboss 7.1 jndi绑定的编程方式,jboss,jndi,Jboss,Jndi,如何在JBoss7.1上以编程方式绑定到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
有可能吗?是的,有可能。以下代码在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()
您将找到更多信息。和registerInJndi()应该在servlet中调用,启动时加载=0(可能来自启动ejb服务)。在这里,我们可以毫无例外地编辑jndi。