我在tomcat中使用LifecycleListener来初始化我的Web服务器中的上下文所需的一些对象。在LifecycleListener中,我希望能够访问GlobalNamingResources环境变量,以便在server.xml文件中保留服务器的配置。尝试各种方法时,我收到以下错误:
javax.naming.NameNotFoundException: Name java:comp is not bound in this Context
我假设jndi没有被服务器启动过程的这个阶段初始化。关于如何解决这个问题的任何想法?
答案 0 :(得分:1)
JNDI也在LifecycleListener中设置,但NamingContextListener是最后一个。我认为你不能改变它。
解决方案是在ServletContextListener中初始化应用程序。在所有LifecycleListener启动后,始终会初始化它。
您可以使用<ResourceLink>
将所有全局JNDI上下文导入到webapp。