我一直在 Tomcat 上运行一个 Web 应用程序,当我对应用程序(包括 context.xml)进行一些更改并重新部署它时,我开始收到一个异常:
javax.naming.NamingException: Cannot create resource instance
at org.apache.naming.factory.ResourceFactory.getObjectInstance(ResourceFactory.java:143)
at javax.naming.spi.NamingManager.getObjectInstance(NamingManager.java:304)
at org.apache.naming.NamingContext.lookup(NamingContext.java:793)
at org.apache.naming.NamingContext.lookup(NamingContext.java:140)
at org.apache.naming.NamingContext.lookup(NamingContext.java:781)
at org.apache.naming.NamingContext.lookup(NamingContext.java:140)
at org.apache.naming.NamingContext.lookup(NamingContext.java:781)
at org.apache.naming.NamingContext.lookup(NamingContext.java:140)
at org.apache.naming.NamingContext.lookup(NamingContext.java:781)
at org.apache.naming.NamingContext.lookup(NamingContext.java:153)
at org.apache.naming.SelectorContext.lookup(SelectorContext.java:137)
at javax.naming.InitialContext.lookup(InitialContext.java:392)
环顾四周后,我意识到 CATALINA_BASE/conf/Catalina/localhost 中的 appname.xml 与更新后的 context.xml 不同,因此当应用程序尝试查找 jndi 资源时,它找不到任何内容。据此, 2个文件必须完全相同。对于这种情况,我提出了 2 个解释和问题:
- 重新部署期间存在使 appname.xml 不变的问题
- 尽管我更改了 context.xml,但 tomcat 仍然在某处存储旧版本并使用它而不是新版本
我想知道是否有人以前见过这些问题,如果有,我真的很感激任何解决方案。或者,如果您对我的情况有其他解释和/或问题,不客气!谢谢 :)
大号
PS:tomcat在我公司的服务器上,所以我不能直接去修改appname.xml :(