2

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 つの説明と質問を思いつきます。

  1. 再デプロイ中に appname.xml が変更されない問題があります
  2. context.xml を変更しても、Tomcat はまだ古いバージョンをどこかに保存しており、新しいバージョンの代わりにそれを使用しています。

以前にこれらの問題を見た人がいるのだろうか、もしあれば、解決策を本当に感謝しています. または、私の場合について他の説明や質問がある場合は、どういたしまして! ありがとう :)

L

PS: tomcat は私の会社のサーバーにあるので、appname.xml を直接変更することはできません :(

4

1 に答える 1

0

説明 1 が答えです。appname.xml が変更されないままになる再デプロイの問題があります。この問題は、私の会社のアプリケーションの展開方法に関連しています。スクリプトを使用してアプリケーションを削除し、更新されたバージョンを CATALINA_BASE/webapp フォルダーに追加してから、Tomcat のマネージャー ページを使用する代わりに Tomcat を再起動します。

L

于 2012-11-22T10:42:31.443 に答える