【发布时间】:2014-06-21 18:47:52
【问题描述】:
我已经成功地在 jndi 目录中跨在同一个 JVM 中运行的应用程序插入和查找对象:
InitialContext initialContext = new InitialContext();
initialContext.bind("xpto",this);
Object obj = initialContext.lookup("xpto");
我仍然想组织命名空间并因此绑定对象,例如:
InitialContext initialContext = new InitialContext();
initialContext.bind("/aaa/xpto",this);
Object obj = initialContext.lookup("/aaa/xpto");
这失败了
javax.naming.NameNotFoundException: aaa is not bound
我知道我可能需要做更多的事情来创建“aaa”节点,但在任何地方都找不到它是什么......大多数码头文档都引用了静态定义的对象,这不是我想要的。有人能指出我正确的方向吗?
【问题讨论】:
-
问:您是否查看过以下链接:jetty:// - Configuring JNDI 和 http://wiki.eclipse.org/Jetty/Feature/JNDI?特别是,您的“WEB-INF/jetty-web.xml”中有什么?
-
是的,我都看完了。重点是用于配置文件初始化和资源管理器配置的 java:comp 方案。就我而言,我想以编程方式填充命名空间,除了 java:comp/env ...
-
我从来没有尝试创建一个 JNDI 名称而不在 service.xml、web.xml、META-INF/context.xml 中的一个或多个中进行条目(或者,在你的情况下)码头-web.xml。问:有什么理由不想编辑 jetty-web.xml?
-
我想要实现的是在运行在相同 JVM 对象实例中的 webapps 之间共享,这些对象的对象只有在运行时才知道程序的逻辑。在编译时我对这些实体一无所知,无法将它们置于静态配置中。
-
在运行时动态更改 JNDI 绑定?当然!你可以这样做。在运行时动态创建新的 JNDI 资源?那么我不确定JNDI是你想要的。这是来自有类似问题的人的链接(如果我对您的理解正确的话)-他决定使用 JNDI 以外的其他东西:tomcat.10.x6.nabble.com/…。 Q:你考虑过MongoDB这样的东西吗?