我无法在Glassfish中获取一些基本的JNDI配置。Glassfish中的JNDI配置/查找
我有我认为应该是一个简单的任务:在运行时,确定是否一个特定的属性设置为true或不。我认为这是一个很好的JNDI应用程序,但似乎无法获得应用程序服务器和我的servlet代码之间的正确路径。
这里是我如何在GlassFish中配置的属性:
在我的servlet代码中,我试图查找与价值:
Boolean enabled = (Boolean) ctx.lookup("java:global/arizona/quartz_enabled");
除了这个我也试过以下没有成功:
- java:global /亚利桑那/亚利桑那/ quartz_enabled
- 的java:模块/亚利桑那/ quartz_enabled
- 的java:模块/亚利桑那/亚利桑那/ quartz_enabled
我的应用程序被命名为 “亚利桑那” 号,但如果部署到根上下文,事项。
我敢肯定,这只是一个简单的事情来确定适当的命名空间来达到属性,但我觉得我只是在黑暗中试图找到它。有没有简单的方法来浏览Glassfish中的JNDI树?
嗯,这似乎不适合我。我仍然得到:引起:javax.naming.NamingException:在SerialContext中'java:comp/env/arizona/quartz_enabled'的查找失败[根异常是javax.naming。NameNotFoundException:没有对象绑定到名称java:comp/env/arizona/quartz_enabled] 我也是一个Intellij用户,那个评估器确实很好,但不幸的是在这种情况下,您似乎仍然需要知道正确的JNDI名称。我没有在InitialContext中看到任何“可行走”的东西,我可以浏览。 – 2011-03-12 22:40:16
在我需要进行调试的应用服务器之一(不记得哪一个确切,很久以前),JNDI被实现为嵌套映射,其中键是字符串,值是真实(绑定)值或地图(嵌套路径)。所以我能够将它投射到地图上并挖掘到我需要的点。 InitialContext也有getEnvironment()方法返回Hashtable,所以如果Glassfish JNDI不是在Map上构建的,它仍然应该公开类似的API。你可以从java:comp/env开始,看看里面有什么,然后挖掘,直到找到答案。 – mindas 2011-03-12 22:55:40