Eclipse上でのTOMCATのエラー

このQ&Aのポイント
  • Java超初心者のため、EclipseでTOMCATを使う際に発生したエラーについての質問です。
  • TOMCATを起動するとlog4jのエラーメッセージが表示され、日付表示などが表示されない状況です。
  • 環境変数とクラスパスの設定に関連する問題がある可能性があり、CLASSPATH、LOG4J_HOME、JAVA_HOMEの値も記載しています。
回答を見る
  • ベストアンサー

Eclipse上でのTOMCATのエラー

Java超初心者です。 Eclipseで TOMCATを使えるようにするため、 TOMCATプラグインツールをダウンロードし、TOMCATを起動してみたのですが、 log4j:WARN No appenders could be found for logger (org.apache.commons.digester.Digester). log4j:WARN Please initialize the log4j system properly. というエラーが出ます。 TOMCATを起動しますというメッセージは出て、起動しているとは思うのですが、 その後の日付表示などが全く出ないので、何か問題があるように思います。 log4jのインストールもしていますが、それが何か影響をあたえているのかがわかりません。 いろいろ調べてみてクラスパスの設定がよくないのかも?とも思うのですが、 そもそも環境変数とクラスパスの違いがよくわからないので、手のつけようがありません>< 関連する(と思われる)環境変数は以下の通りです。 CLASSPATH : C:\jakarta-log4j-1.2.8\dist\lib\log4j-1.2.8.jar LOG4J_HOME : C:\jakarta-log4j-1.2.8 JAVA_HOME : c:j2sdk1.4.2_07; わかりづらい質問だと思いますが、どうか宜しくお願い致します。

  • blume
  • お礼率95% (68/71)
  • Java
  • 回答数2
  • ありがとう数5

質問者が選んだベストアンサー

  • ベストアンサー
  • shiz
  • ベストアンサー率36% (4/11)
回答No.2

クラスパスについて、少し混乱されているようなので簡単に説明させていただきます。 クラスパスとは、一言でいうと、jvmが実行時に読み込みを行うクラスが置いてあるパスです。 ただ、Webアプリケーションを開発されている場合、このクラスパスには2種類あると思ってください。 1.アプリケーションサーバ実行のためのクラスパス アプリケーションサーバ(Tomcat)は、それ自体がjavaプログラムですので、その実行に際して読み込むクラスをクラスパスから読み込みます。 この場合、環境変数CLASSPATHで定義されているクラスパスを読み込みます。 2.Webアプリケーションが読み込むクラスパス Tomcat上で動くWebアプリケーションも当然javaプログラムですので、実行時に読み込むクラスをクラスパスから読み込みます。 その際、1で読み込まれたクラスパスに加えて、各Webアプリケーションのルートディレクトリ($TOMCAT_HOME/webapps/test_appli/)の下の「WEB-INF/classes」以下を、アプリ固有のクラスパスとして動的にクラスパスへ追加して読み込むと思ってください。 (正確にはこれらに加えて、「1.5.Webコンテナが読み込むクラスパス」というのもあるのですが、それはまた別の機会に・・・) で、本件ですが、結論からいうと環境変数で設定されているCLASSPATH上に「log4j.properties」を配置しても問題なく動作するはずです。 ただ、各Webアプリケーションで使用されるクラスは各Webアプリケーションのクラスパス上に配置すべきです。(もし環境変数のほうのクラスパスに配置すると、全てのWebアプリケーションで共通のlog4j設定を使用することになり、好ましくありません。稼動しているサービスと開発/デバック中のサービスで同じログを吐くのはありえませんよね?) 「log4j.properties」配置するのは、log4jを使用したいWebアプリのルート($TOMCAT_HOME/webapps/test_appli/)以下の「WEB-INF/classes」以下です。Tomcatに複数アプリケーションがある場合は、面倒でもそれぞれに配置してください。 オーケーでしょうか?

blume
質問者

お礼

補足に引き続いて、上記のエラーについてですが、 「log4j.properties」Webアプリのルート下のWEB-INF/classes下に配置したところ、エラーが消えました!! 本当にありがとうございました。 ほんとうにとても丁寧に答えてくださって、すごくわかりやすかったです。 まだまだ勉強中なので、これからもお世話になることがあるかもしれませんが、 そのときはどうぞよろしくお願いいたします。 ありがとうございましたo(^-^o)(o^-^)o

blume
質問者

補足

ありがとうございましたm(_)m shizさんのおっしゃるとおり、クラスパスというのを誤って理解しておりました・・・ 今まで環境変数のCLASSPATH=クラスパスだと思い込んでいたところが あったのですが、厳密にはそうではないんですね。 勉強不足で申し訳ありません。 このことを理解したらやっと 「classパスの通っているディレクトリに配置する」ということが理解できました☆ ありがとうございました。

その他の回答 (1)

  • shiz
  • ベストアンサー率36% (4/11)
回答No.1

エラーの内容は、「log4jを初期化しようとしてるんだけど、設定が正しくされていないので起動できない」というものです。 log4jをアプリで使用しないのであれば無視しても全く問題はないのですが、log4jを使いたいor気持ち悪いのであれば、log4jの設定を行ってあげる必要があります。 具体的には、log4j.propertiesという設定ファイルをclassパスの通っているディレクトリ(WEB-INF/classes 直下とか)に配置してあげればOKです。 その際、log4j.propertiesファイルの内容は、 ------ log4j.rootCategory=DEBUG, A1 log4j.appender.A1=org.apache.log4j.ConsoleAppender log4j.appender.A1.layout=org.apache.log4j.PatternLayout ------ などとすれば、とりあえずWARNINGは出力されなくなると思います。 log4j.propertiesファイルの詳しい記述方法、またlog4jの使い方については、参考URLのページが詳細で分かりやすいので参考になさってください。

参考URL:
http://www.techscore.com/tech/ApacheJakarta/Log4J/1.html
blume
質問者

お礼

わかりやすい回答ありがとうございました(^o^) エラーの意味もよくわからなかったので、そういうことなのかぁと納得しました。 しかし、ひとつわからないことが・・・ 設定ファイルをクラスパスの通っているディレクトリとあるのですが、 それはどこを指すのでしょうか。 環境変数CLASSPATHのルートの中にあるWEB-INFのことですか?? CドライブにはWEB-INF/classesというファイル(?)がたくさん あって配置すればよいかわかりませんでした>< もし、よろしければ教えていただけると助かります。 何度も申し訳ありません。。

関連するQ&A

  • TOMCATのインストールについて

    他のトピで同様にTOMCATのインストールについて質問がありましたが、私も同様に困っています。 TOMCATをDOSコマンドから立ち上げようとすると、あと一歩(?)で「環境変数のための領域が足りない・・・」といわれ、うまくできません。何か対処の方法はありませんでしょうか? ※以下に、環境変数ならびに起動ログを添付いたします。 [OS] WinMe ▽環境変数 COMSPEC=C:\WINDOWS\COMMAND.COM PATH=C:\WINDOWS;C:\WINDOWS\COMMAND;C:\jdk1.3.0_02\bin;C:\jakarta -tomcat-3.2.1\bin PROMPT=$p$g TEMP=C:\WINDOWS\TEMP TMP=C:\WINDOWS\TEMP JAVA_HOME=C:\jdk1.3.0_02 TOMCAT_HOME=C:\jakarta-tomcat-3.2.1 CLASSPATH=C:\jakarta-tomcat-3.2.1\lib winbootdir=C:\WINDOWS windir=C:\WINDOWS BLASTER=A220 I5 D1 T4 P330 CMDLINE=doskey /insert ▽起動ログ C:\WINDOWS>tomcat start Unable to set CLASSPATH dynamically. Note: To set the CLASSPATH dynamically on Win9x systems only DOS 8.3 names may be used in TOMCAT_HOME! Setting your CLASSPATH statically. Using CLASSPATH: C:\jakarta-tomcat-3.2.1\classes;C:\jakarta-tomcat-3.2.1\lib\ant .jar;C:\jakarta-tomcat-3.2.1\lib\jasper.jar;C:\jakarta-tomcat-3.2.1\lib\jaxp.jar ;C:\jakarta-tomcat-3.2.1\lib\parser.jar;C:\jakarta-tomcat-3.2.1\lib\servlet.jar; C:\jakarta-tomcat-3.2.1\lib\webserver.jar;C:\jakarta-tomcat-3.2.1\lib;C:\jdk1.3. 0_02\lib\tools.jar 環境変数のための領域が足りません. <= ここです。 Starting Tomcat in new window

  • TOMCATの設定に関して

    TOMCATの設定に関しての質問です。 OSはWinMeです。 Cの直下にあるautoexec.batファイルに 以下の3行を追加しました。 SET JAVA_HOME=C:\j2sdk1.4.0_01 SET TOMCAT_HOME=C:\jakarta-tomcat-3.2.4 SET CLASSPATH=C:\jakarta-tomcat-3.2.4\lib\servlet.jar *結果* -------------------------------------------------------------------------- C:\jakarta-tomcat-3.2.4\bin>startup Unable to set CLASSPATH dynamically. Note: To set the CLASSPATH dynamically on Win9x systems only DOS 8.3 names may be used in TOMCAT_HOME! Setting your CLASSPATH statically. Using CLASSPATH: C:\jakarta-tomcat-3.2.4\classes;C:\jakarta-tomcat-3.2.4\lib\ant .jar;C:\jakarta-tomcat-3.2.4\lib\jasper.jar;C:\jakarta-tomcat-3.2.4\lib\jaxp.jar ;C:\jakarta-tomcat-3.2.4\lib\servlet.jar;C:\jakarta-tomcat-3.2.4\lib\webserver.j ar;C:\jakarta-tomcat-3.2.4\lib\servlet.jar;C:\j2sdk1.4.0_01\lib\tools.jar 環境変数のための領域が足りません. Starting Tomcat in new window -------------------------------------------------------------------------- 原因が良く分かりません。本に書いてある通りにやったのですが、このエラーの 意味を教えていただけないでしょうか?

    • ベストアンサー
    • Java
  • digesterが動きません

    Digesterをいじる http://www.h7.dion.ne.jp/~s_wat/jakarta/digester.html を見てDigesterを動かしてみようと思ってやっているのですが、Javaをコンパイルするとorg.apache.commons.digesterは存在していませんと出ています、クラスパスがしっかり通ってないからだと思っているのですが、どうにもなりません。 C:\PracticeJAVA\j2sdk1.5.0_07\bin;C\PracticeJAVA\jakarta-struts-1.1\lib\struts.jar;C:\tomoo\commons-beanutils.jar;C:\tomoo\comoons-beantils-bean-collections.jar;C:\tomoo\commons-beanutils-core.jar;C:\tomoo\commons-collections-3.2.jar;commons-collections-testframework-3.2.jar;C:\tomoo\commons-logging-api-1.1.jar こんな感じで環境変数設定したのですが、どう直したら良いでしょうか? お願いします。

  • EclipseでTomcat

    Windows XP Eclipse 3.0.1 Tomcat 4.1 Eclipseでサーブレットをしようと思って Tomcatをインストールしたのですが、 Eclipseを起動しTomcatプロジェクトを作成せずに Tomcatを起動するとうまく起動するのですが Tomcatプロジェクトを起動すると以下のようなメッセージが出て起動できません。 解決法がわかる方いましたらお願いします。教えてください。 org.apache.commons.digester.Digester fatalError 致命的: Parse Fatal Error at line 1 column 87: Invalid byte 1 of 1-byte UTF-8 sequence. org.xml.sax.SAXParseException: Invalid byte 1 of 1-byte UTF-8 sequence. at com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.createSAXParseException(Unknown Source) at com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.fatalError(Unknown Source) 以下略

    • ベストアンサー
    • Java
  • Tomcatのクラスパス

    OSの環境変数で指定したclasspathと Tomcatのクラスパスは違うようですが、 Tomcatの場合web.xmlに記述するのでしょうか? 1つのjavaクラスを、サーブレットから、 Runtime.getRuntime().exec() で実行したい場合、Tomcatのweb.xmlなどにクラスパスを指定するのでなく、-classpathを指定した方が良いのでしょうか?

    • ベストアンサー
    • Java
  • WIN98seへのtomcatの実装方法について

    tomcatのクラスパスの設定についてですが、 WIN98SEでは、 autoexec.batで、行うのでしょうか ちなみにJSDK1.3は、Dドライブに入っています、 tomcatも同じドライブに入っています。 java pressの15号を見ると以下のように書いています。 c:\jakarta-tomcat\lib\jasper.jar c:\jakarta-tomcat\lib\servlet.jar c:\jakarta-tomcat\lib\webserver.jar c:\jakarta-tomcat\lib\xml.jar と書いてあるのですが、 DOS画面で、 D:WINDOWS>set classpath このあとに続けて書けばよいのか教えてください。 初歩的な質問で、申し訳ありませんが なるべく詳細に教えてくださいませんでしょうか?

  • Tomcatについて

    Javaサーブレット&JSPの勉強のためにTomcatをインストールしたのですが 正常に起動してくれません。 binディレクトリから、startup.batを起動すると、一瞬別のウィンドウが 開くのですが、すぐに閉じてしまいます。 (何か表示されているようですが、速すぎて見えません。) logディレクトリにあるファイルを見たのですが、0kバイトとなっていて 原因がわかりません。 JAVA_HOME、TOMCAT_HOME、PATH の環境変数はセットしたのでが 他に何か設定が必要なのでしょうか? (または、原因を調べる方法はないでしょうか?) ちなみに、Tomcat・JDKは以下のページからダウンロードしました。 [Tomcat3.2.1] http://java.sun.com/j2se/1.3/ [JDK1.3] http://jakarta.apache.org/site/binindex.html よろしくお願いします。

  • 外部jarへのパスの通し方

    はじめまして。パスの通し方について教えてください。 javaを勉強しようと、 j2sdk1.4.1_04 jakarta-log4j-1.2.8 tomcat_5.0.16 eclipse2.1.1 をダウンロードして、環境を設定しようとしているところです。 しかし、外部jar(log4j、tomcat)を使用したSRCをコンパイルしようとしても、javax.servlet.httpが見つかりません等のエラーが出てしまいます。 eclipseでは、外部jarを取り込んでいるので、コンパイルが通って動作確認(log4jのみ)は済んでいます。 ただし、コマンドプロンプトからのコンパイルでは上記のようなエラーが出てしまいます。 PATHは JAVA_HOME: C:\j2sdk1.4.1_04 TOMCAT_HOME: C:\Program Files\Apache Software Foundation\Tomcat 5.0 LOG4J_HOME: C:\jakarta-log4j-1.2.8 CLASS_PATH .;%LOG4J_HOME%\dist\lib\log4j-1.2.8.jar;%TOMCAT_HOME%\common\lib\ant.jar;%TOMCAT_HOME%\common\lib\commons-collections.jar・・・ (C:\Program Files\Apache Software Foundation\Tomcat 5.0\common\lib\配下全てのjar) に設定してあります。(インストールは全てデフォルト、解凍するものはC直下に解凍してあります。eclipseも同様のものを外部jarとして取り込んであります。) 何か、根本的に間違っているのでしょうか? よろしくお願いします。 ★最終的には、MY_SQLを使用しservletからDBアクセスという環境を設定したいと思っています。 長文失礼しました。

  • tomcatのstartupについて

    tomcatをダウンロードしてC:\tomcat\jakarta-tomcat-3.2.4\binのディレクトリ の中にstartupがあるのですが起動するとC:\tomcat\jakarta-tomcat-3.2.4\bin>  コマンドまたはファイル名が違いますと表示されます。 ちなみにメモリ(環境設定)、JAVA_HOME,TOMCAT_HOMEなどは設定済みです。 アドバイスお願いします。

  • tomcatを起動させることができません

    はじめてJSPを勉強しています。 tomcatをインストールしpahtを通してstartupのコマンドをdosプロンプトで打ったのですが、新しい画面が一瞬表示されてすぐ消えてしまい起動できません。 dosの画面には以下のように表示されます。 Using CATALINA_BASE: c:\jakarta-tomcat-4.0.4 Using CATALINA_HOME: c:\jakarta-tomcat-4.0.4 Using CATALINA_TMPDIR: c:\jakarta-tomcat-4.0.4\temp Using JAVA_HOME: c:\j2sdk1.4.0_01 この状態で”http://localhost:8080/” をブラウザで開こうとしても”ページを表示できません”とでます。 OSはwindowsXP HOMEです。 ネットで八方手を尽くしましたが、関連する項目が見つかりません。何か初歩的なことなのでしょうか。なにとぞ助けてください。お願いします。

    • ベストアンサー
    • Java

専門家に質問してみよう