在Tomcat中以编程方式设置JNDI

时间:2016-02-18 14:48:08

标签: spring jndi

想问一下,有没有办法在运行时添加/替换JNDI资源来运行Tomcat(6或7)? 我正在查看Spring SimpleNamingContextBuilder ,但这是出于测试目的。 另一方面,我想把它放在“生产代码”中,在任何其他评论出现之前,是的,我想要这样的JNDI(;

1 个答案:

答案 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。