Cannot create resource instance

環境。

  • java:J2SE v 1.4.2_18
  • tomcat:4.1.37

上記の環境をwindowsとlinuxマシンで構築した。windowsで開発して、出来上がったものをlinuxサーバで運用するというイメージ。同じ環境であれば、windowsで作ったものをlinuxでも同じように動くだろうと思いきや、Cannot create resource instanceというエラーが発生してどうしても動かない。発生する場所はjdbc接続でmysqlに接続するときにこのエラーが発生する。この接続エラーが発生する理由については結局わからず終い。jdbcドライバ、mysqlのバージョン、文字コードなどチェックはしたけれど、


  DataSource ds  = (DataSource)initCon.lookup("java:comp/env/my_DB");
  Connection con = ds.getConnection();

のgetConnection();でどうもエラーが発生してresource instanceをcreateできない。原因を探るためにlinuxにeclipseをインストールしてデバッグをしてみようとしたけれど、このlinux版eclipseが死ぬほど重い上にtomcatプラグインが謎のエラーを出してまともに作業できない。何をやってもうまくいかなかったので最後の手段と思ってjavaとtomcatのバージョンを最新バージョンのものへアップグレードすることにした。すると、何の問題もなく動くようになった。インストールしたバージョンは次の通り。

  • java:jdk1.6.0_07
  • tomcat:5.5.26

もともと玄箱に合わせてあえて古いバージョンを使ってたのだけれど、玄箱があまりに遅いため代わりの別のマシンでサーバを構築することしにしたので、特にソフトのバージョンにこだわる必要がなくなった。

調べてみたら同様のエラーに遭遇している人は割りと多くいる模様。javaのJ2SE v 1.4.2_18とtomcatの4.1.37という組み合わせはあまりよくないのかもしれない。

コメントを残す

メールアドレスが公開されることはありません。