想问一下,有没有办法在运行时添加/替换JNDI资源来运行Tomcat(6或7)? 我正在查看Spring SimpleNamingContextBuilder ,但这是出于测试目的。 另一方面,我想把它放在“生产代码”中,在任何其他评论出现之前,是的,我想要这样的JNDI(;
答案 0 :(得分:0)
警告:我没有在Tomcat中测试过这个。
这是一个API页面。 InitialContext
通过调用unbind([the jndi name])替换JNDI绑定 然后绑定([jndi名称],[新值])
例如,
Context context = new InitialContext();
Object newDesiredValue = null; //... set this appropriately.
context.unbind("blammyJNDIName");
context.bind("blammyJNDIName", newDesiredValue);
但这对你来说可能还不够。 如果您需要更多控制权,请执行以下操作:
这是一个API页面。 InitialContextFactory
System.setProperty(Context.INITIAL_CONTEXT_FACTORY,
YourNewContextFactory.class.getName());
在YourNewContextFactory类中, 在返回新的InitialContext之前,如上所示实现getInitialContext方法和unbind / bind。