如何解决使用Spring的SimpleNamingContextBuilder的应用程序如何知道在其目录中搜索资源?
| 使用Spring的ѭ0作为其JNDI提供程序的应用程序如何知道在其目录中搜索资源?是什么将应用程序链接到Spring命名目录?例如,这个较早答案中的JndiObjectFactoryBean
bean如何知道如何在Spring目录中找到资源my-db
? JndiObjectFactoryBean
是否不需要将属性java.naming.factory.initial
设置为接口InitialContextFactory
的某些实现的上下文环境?使用SimpleNamingContextBuilder
作为JNDI提供程序时,java.naming.factory.initial
的值应该是什么?
解决方法
简而言之,如果要在单元测试中使用模拟InitialContext模拟JNDI树,则可以使用SimpleNamingContextBuilder。我在测试的启动方法中实例化了SimpleNamingContextBuildeit并成功创建了内存中的InitialContext。
例如在春季考试课上..
@BeforeClass
public static void setupJndi() throws Exception {
SimpleNamingContextBuilder.emptyActivatedContextBuilder();
Context context = new InitialContext();
context.bind(\"java:comp/env/jms/ConnectionFactory\",myJmsConnectionFactory);
}
,Java运行时类“ 9”充当Java应用程序与其命名目录之间的链接。激活“ 0”时,它将自身安装到“ 9”中的静态成员“ 11”。当应用程序创建InitialContext
来检索JNDI上下文时,类InitialContext
委托NamingManager,后者又要求IntialContextFactoryBuilder
(在这种情况下为SimpleNamingContextBuilder
)创建IntialContextFactory
,最终创建了InitialContext
。
JndiObjectFactoryBean
不需要显式的上下文环境,因为SimpleNamingContextBuilder
为NamingManager
提供InitialContextFactory
,而JndiObjectFactoryBean
使用NamingManager
检索其资源。因此,在较早的答案中,JndiObjectFactoryBean
\“ knows \”在Spring命名目录中搜索资源my-db
,因为SimpleNamingContextBuilder
已在as9ѭ中确立为JNDI提供者。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。