tomcat6 をインストールするには、なぜ /usr/share/java へのソフト リンクを作成する必要があるのですか?

tomcat6 をインストールするには、なぜ /usr/share/java へのソフト リンクを作成する必要があるのですか?

以下の手順に従って、Lucid に tomcat6 をインストールしました。Ubuntu 10.04 のサーバーガイド

(インスタンス レベルのバージョンは作成しませんでした。システム レベルのバージョンで問題ありませんでした)

起動しようとすると、ログに次のエラーが表示されました。

java.lang.ClassNotFoundException: org.apache.catalina.startup.Catalina
    at java.net.URLClassLoader$1.run(URLClassLoader.java:202)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:247)
    at org.apache.catalina.startup.Bootstrap.init(Bootstrap.java:216)
    at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:391)

この問題は、次の操作を行うことで解決しました。

root@...:/var/lib/tomcat6# ln -s /usr/share/java lib

なぜこれをやらなければならなかったのか?なぜ箱から出してすぐには動かないのか?(なぜこれがTomcat 上の Ubuntu マニュアル?)

答え1

Tomcat のインストール:

sudo apt-get install tomcat6

Tomcat をサービスとしてインストールして起動すれば問題ありません。サービスは次のコマンドで開始および停止できます。

sudo /etc/init.d/tomcat6 start
sudo /etc/init.d/tomcat6 stop

http://localhost:8080/ブラウザを使用するか、コマンド ラインから を表示することで、サービスが実行されているかどうかを確認できます。

curl http://localhost:8080/

これがすぐに動作しない場合は、マシンの設定方法、または Tomcat サービスの実行方法に問題がある可能性があります。

/etc/init.d/tomcat6 スクリプト以外の方法で Tomcat を実行しようとすると、複雑な問題が発生する可能性があります。Tomcat ディストリビューションとファイルの場所を定義する環境変数は 2 つあります。CATALINA_HOME と CATALINA_BASE です。パッケージの標準インストールでは、これらは init.d スクリプトによって自動的に次のように設定されます。

CATALINA_HOME=/usr/share/tomcat6
CATALINA_BASE=/var/lib/tomcat6

Tomcat を他の方法で実行しようとしている場合、これらの変数が正しく設定されていない可能性があり、その結果、説明しているエラーが発生する可能性があります。

パッケージ化されたTomcatサーバーは、サーバー上でTomcatをバックグラウンドサービスとして実行するために設計されており、init.dスクリプトを使用してのみ起動および停止する必要があります。開発マシンでTomcatを実行しようとしている場合(たとえば、EclipseなどのIDEから)、パッケージがTomcatをインストールする方法は適切ではないことがわかります。代わりに、説明書サーバーのマニュアルまたはダウンロード中Tomcat Web サイトから直接ダウンロードし、手動で抽出します。

関連情報