エニグマ


環境を作り直したら、どうしてもJNDIからリソースを取得できない。

22:05:49 (ERROR) Context initialization failed
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'dataSource' defined in ServletContext resource [/WEB-INF/config/domain/transaction.xml]: Initialization of bean failed; nested exception is javax.naming.NameNotFoundException: 名前 jdbc はこのコンテキストにバインドされていません
javax.naming.NameNotFoundException: 名前 jdbc はこのコンテキストにバインドされていません
at org.apache.naming.NamingContext.lookup(NamingContext.java:768)

(以下略)


transaction.xmlの内容(抜粋)

 
  
   java:comp/env/jdbc/OraAccess
  

 


JNDIの定義はテストサーバと同じだし・・・約6時間後に結果判明。


${CATALINA_HOME}/conf/Catalina/localhost/ <=ここに、アプリの情報が記載してあるXMLがある。
んで、ROOT.xmlにはまぁROOTっぽい情報が書いてある(とくに何も書かなければWelcomeページの設定?)


さてEclipseのプロジェクト=>プロパティー=>Tomcatに、「Tomcatプロジェクトである」というチェックがあるが、間違えて非Tomcatプロジェクトでこれをチェックしてしまった。すると、Webアプリケーションのルートが"/"(つまりROOT)と設定されてしまう。

ROOT.xml



チェックはすぐに気がついてはずしたのだが、このファイルが変更されていなかったのだ。

とくに必要ないのでこのファイル自体を削除したらJNDIも正常に取得することができた。



・・・な、な、なんで????