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 リソースを検索しようとしても何も見つからないことがわかりました。thisによると、2 つのファイルはまったく同じである必要があります。この場合、2 つの説明と質問を思いつきます。
- 再デプロイ中に appname.xml が変更されない問題があります
- context.xml を変更しても、Tomcat はまだ古いバージョンをどこかに保存しており、新しいバージョンの代わりにそれを使用しています。
以前にこれらの問題を見た人がいるのだろうか、もしあれば、解決策を本当に感謝しています. または、私の場合について他の説明や質問がある場合は、どういたしまして! ありがとう :)
L
PS: tomcat は私の会社のサーバーにあるので、appname.xml を直接変更することはできません :(