0

Tomcat7 のローカル Windows7 環境で正常に動作する Java アプリケーションがあります。これをLinux環境で本番環境に入れようとしています。アプリケーションが DB にアクセスしようとする場合を除いて、すべてが完了し、正常に動作しています。DB が関与しない操作では、正常に動作します。私が得るエラーは

java.lang.ClassNotFoundException: org.apache.tomcat.dbcp.dbcp.BasicDataSourceFactory

このクラスは tomcat-dbcp.jar の一部です。これは $CATALINA_HOME/lib フォルダーに配置されます。なぜこれがまだ取り上げられていないのですか?助けてください!

更新: .jar ファイルを開いて確認しました。org.apache.tomcat.dbcp.dbcp.BasicDataSourceFactory.class ファイルが存在します。

4

1 に答える 1

2

やっとクラックできました。私の間違い - echo $CATALINA_HOME だけに頼ってその場所を確認していました。これは誤解を招く可能性があることがわかりました。使ったほうがいい

ps aux | grep catalina

表示される出力で、catalina.base と catalina.home を探します。これらの変数の前に指定されたパスは、Tomcat ライブラリが取得されるパスです。デフォルトのインストールを行ったところ、/usr/share/tomcat7 の下にライブラリが見つかりました。結局のところ、yum を使用して行われたデフォルトのインストールでは、tomcat-dbcp.jar ファイルが提供されませんでした。代わりに、commons-dbcp.jar が提供されました。tomcat-dbcp と commons-dbcpについて読む

usr/share/tomcat7 フォルダーの下にある lib ファイルを変更するには、sudo bash を使用する必要がありました。また、/usr/share/tomcat7 の下の lib フォルダーが simlink であることに気付くかもしれません。親の場所を取得するには、 ls /usr/share/tomcat7 -l を実行するだけです。親の場所でのみ変更を加えることができます。/usr/share/tomcat7 自体から最終的に選択されている server.xml についても、同様のことが確認できます。

これらすべてを管理する最善の方法は、独自の simlinks を作成することです。これにより、最初にさまざまな場所に移動する必要がなくなります。

助けようとしたすべての人に感謝します。

于 2013-01-21T06:54:01.163 に答える