CATALINA_BASE / conf / Catalina / localhost / <appname> .xml与应用程序的context.xml不同</appname>

时间:2012-11-16 15:31:36

标签: java tomcat web-applications jndi context.xml

我一直在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资源时,它找不到任何内容。根据{{​​3}},2个文件必须完全相同。对于这种情况,我想出了两个解释和问题:

  1. 在重新部署期间,有一个问题使appname.xml保持不变
  2. 虽然我更改了context.xml,但tomcat仍会在某处存储旧版本并使用它而不是新版本
  3. 我想知道以前是否有人看过这些问题,如果有的话,我真的很感激任何解决方案。或者,如果您对我的案例有其他解释和/或问题,欢迎您!谢谢:))

    PS:tomcat在我公司的服务器上,所以我不能直接去改变appname.xml :(

1 个答案:

答案 0 :(得分:0)

解释1是答案,重新部署存在问题,使appname.xml保持不变。该问题与我公司部署应用程序的方式有关:我们使用脚本删除应用程序并在CATALINA_BASE / webapp文件夹中添加更新版本,然后重新启动tomcat而不是使用tomcat的管理器页面。