電子書籍の厳選無料作品が豊富!

Tomcatを用いたWebアプリケーション作成についてご質問させてください。

Webアプリケーション実行時に読み込まれるクラスパスを任意に追加することは可能でしょうか。標準では{CONTEXT_ROOT}/WEB-INF/classesと{CONTEXT_ROOT}/WEB-INF/libにあるクラスがサーブレット上で実行されるクラスとして読み込まれますよね。これ以外に任意のディレクトリをクラスパスとして追加し、そのディレクトリにあるクラスをサーブレット上で実行したいのですが、可能でしょうか。

環境変数にクラスパスを設定してみたり、{TOMCAT_HOME}/bin/setclaspass.shにクラスパスを追加してみたりもしたのですが、結果は両方ともNoClassFoundExceptionでした。

ご教示お願いいたします。

A 回答 (4件)

一般的にアプリケーションサーバでは、アプリケーションサーバ自体が使用するクラスローダと、Webアプリケーションが使用するクラスローダを明確に分けている場合が多いです。


また、アプリケーションサーバ起動時に指定するclasspath指定はアプリケーションサーバ自体が使用するクラスへのパスを指定するのが普通です。

Tomcatでは、複数のWebアプリケーション間で共通で使用するクラスの格納先が指定されているようです。ただし、Tomcat3.x系と、4.x系以上とでは違いがあるようです。

詳しくは、以下のドキュメントを参考にしてください。

Tomcat3.x系
http://jakarta.apache.org/tomcat/tomcat-3.3-doc/ …

Tomcat4.x系
http://jakarta.apache.org/tomcat/tomcat-4.1-doc/ …

Tomcat5.x系
http://jakarta.apache.org/tomcat/tomcat-5.0-doc/ …
    • good
    • 0
この回答へのお礼

ご回答ありがとうございます。ご提示いただいたURLで調べてみようと思います。

お礼日時:2005/04/28 16:55

#2です。



失礼しました。
>TOMCAT_HOME}/bin/setclaspass.shにクラスパスを追加…
自分の回答は↑の部分に思いっきり書いてありましたね。
熟読せずに回答してしまい申し訳ありませんでした。
m(_ _)m
    • good
    • 0
この回答へのお礼

ご回答いただきありがとうございます。Tomcatを起動する為のシェルスクリプトにはクラスパスを指定したのですけどダメでした。もうちょっと色々がんばってみようと思います。

お礼日時:2005/04/28 16:57

(Tomcatの起動についてそこまで詳しくないので、憶測です。

)

Tomcatを起動するときにJavaVMを起動しているはずなので、そのsh?ファイルか何かで
java -cp ~
とか
jre -cp ~
とかやってるとしたらそこにクラスパスを付け加えてみては?
(って憶測ですので、そんなshファイルないかもです。)
    • good
    • 0

私は


{JAVA_HOME}/jre/lib/ext ディレクトリにclassファイルをjarにまとめて貼り付けています。
    • good
    • 0
この回答へのお礼

ご回答いただきありがとうございます。ご提示いただいた方法を試してみたいと思います。

お礼日時:2005/04/28 16:58

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!