仕事を頑張る人のおしりトラブル対策

JAVAのシステムが運用中に動かなくなりました。
アプリケーションのLogは、処理を開始して止まったままです。
LOOPではありません。

Tomcatを再起動すると正常に動き始めました。
TomcatのLog(Catalina.out)を見ますと、以下のエラーが記述されていました。

致命的: 静的リソースの起動中のエラーです
java.lang.IllegalArgumentException: ドキュメントベース /var/webapps/tomcat/webapps/job が存在しない、又は読めないディレクトリです

どのようなことが原因として考えられるでしょうか。
また、原因調査の方法を教えてくだい。

よろしくお願いします。

A 回答 (2件)

エラー内容のままじゃないですか?


「/var/webapps/tomcat/webapps/job」が存在しないんじゃないですか?

エラーの内容が明確過ぎて他の事は想像できません。
    • good
    • 0
この回答へのお礼

ご回答ありがとうございます。

/var/webapps/tomcat/webapps/job
は確かに存在しませんので、生成してみました。

Tomcatを再起動しただけでなぜ正常に戻ったのかが不明です。
しばらく様子を見てみたいと思います。

お礼日時:2013/11/12 20:38

どういうことが考えられるかって聞かれても



/var/webapps/tomcat/webapps/job が存在しない、又は読めないディレクトリです

がまず考えられると思うわよ?

Logの出力で止まるなら
Logの出力先が
/var/webapps/tomcat/webapps/job
になっているんじゃない?
    • good
    • 0
この回答へのお礼

ご回答ありがとうございます。

LOGの出力先ではありません。

/var/webapps/tomcat/webapps/job
は存在しませんので、生成しました。

Tomcatを再起動しただけでなぜ正常に戻ったのかが不明です。
しばらく様子を見てみたいと思います。

お礼日時:2013/11/12 20:37

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

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

Qeclipse-TomcatでHTTP404エラー

初心者です。既存eclipse環境に、Tomcatを使える様設定したのですが、
タイトルのようなエラーで困っています。環境は
OS:WindowsXPSP2
Tomcat:5.5
eclipse:3.2
です。
まず、Tomcatを単体で使う際のデータの保存先を「c:\webapps\ROOT」としているため、
Tomcatインストールパスのserver.xmlのappbaseの記述を"webapps"から"c:\webapps"に変更しています。

この状態で、eclipseに「動的Webプロジェクト」を作成し、
「サーバー」としてTomcatサーバを追加し、
JSPプログラムを作成して実行したところHTTP404エラー
「ドキュメントベース c:\webapps\"プロジェクト名" が存在しない、又は読めないディレクトリです」
が出てしまいました。

色々調べた結果、eclipse上の「サーバー」としてTomcatサーバを追加したとき
Tomcatインストールパスのserver.xmlをインポートしているようですが、
appbaseの記述を"webapps"から"c:\webapps"としているせいでその下を見に行っているようです。
server.xmlのappbaseの記述を"c:\webapps"から"webapps"に戻したところ動作するようになったのですが、

(ここからが質問ですが、)
別の環境では、(Vista-Tomcat6.0-eclipse3.4)server.xmlを直さなくても正常に動作します。
ということは、どこかほかの所にもっと優先されるパスの設定があるのではないか?と思うのですが、
それらしいところが見つかりません。

どなたかご教授いただけないでしょうか?
よろしくお願いします。

初心者です。既存eclipse環境に、Tomcatを使える様設定したのですが、
タイトルのようなエラーで困っています。環境は
OS:WindowsXPSP2
Tomcat:5.5
eclipse:3.2
です。
まず、Tomcatを単体で使う際のデータの保存先を「c:\webapps\ROOT」としているため、
Tomcatインストールパスのserver.xmlのappbaseの記述を"webapps"から"c:\webapps"に変更しています。

この状態で、eclipseに「動的Webプロジェクト」を作成し、
「サーバー」としてTomcatサーバを追加し、
JSPプログラムを作成して実行したところ...続きを読む

Aベストアンサー

Tomcat 6.0のドキュメントにコンテキストの設定について以下のような記述があります。

In the $CATALINA_BASE/conf/[enginename]/[hostname]/context.xml.default file: the Context element information will be loaded by all webapps of that host.

デフォルトのままであれば、
[Tomcatディレクトリ]/conf/Catalina/localhost/コンテキスト名.xml
のXMLファイルが出来ていると思います。

server.xmlに設定がない場合、上記のXMLが設定ファイルになります。

#Tomcat 6.0の日本語ドキュメントを探したのですが見当たらなかったので、原文(英語)から引用されて頂きました。

参考URL:http://tomcat.apache.org/tomcat-6.0-doc/config/context.html

Q「httpステータス404」というエラーが出ます。

「httpステータス404」というエラーが出ます。

java初心者です、宜しくお願い致します。
EclipseでServletを書いてやりましたが、以下のようなエラーが出ます、
原因はなんでしょうか、宜しくお願い致します。
「httpステータス404-/Servlet%E7%B7%B4%E7%BF%92/ ServOutput」

Aベストアンサー

Not Found
という意味です。
そのファイルが無い。あるいはリンクが間違っています。
詳しくは参考URLをみてください。

参考URL:http://ja.wikipedia.org/wiki/HTTP_404

Q3つの表の外部結合

表A、B、Cの3つがあり、Aのすべての行を出力したいと考えています。
外部結合を用いるのだとは思うのですが、3つの表に対して行う場合の
書き方がわからず困っています。
ご教授いただけないでしょうか?
select * from a,b,c
where a.商品ID =b.商品ID (+) and b.商品ID (+) =c.商品ID (+)
としてみましたが、うまくいきませんでした。

Aベストアンサー

ansi構文の趣旨からいえば、結合条件と絞り込み条件は分けて書くので・・

select *
from a
left join b on (a.商品ID =b.商品ID)
left join c on (b.商品ID =c.商品ID)
where a.年月 = 任意の値

と書くのが一般的でしょうね。

QEclipse デバッグ エラー処理

Eclipseを使用しているのですが、原因が出てこないエラーなどが良く出てきます。
自力では、なんとも分からず、時間も消費してわからないでかなり困ってしまいます。

今回の場合は新しい処理をいれ、それがnullということは分かるのですが、
ソースは、コピーを少し変えただけで、どこがおかしいか特定できませんでした。

デバッグ(見方とかあまり分からず、触るのも2回目くらい)を利用して箇所を特定しようと、
ステップオーバーしてるうちに、ページが見つかりませんでしたとなってしまいます。

わけが分かりません。
今回の場合どうしたらよいか、
デバックについて勉強になるもの、
又は、エラーパターンの参考になるようなHPや書籍などありましたら教えてください、
よろしくお願いします。

致命的: サーブレット jsp のServlet.service()が例外を投げました
java.lang.NullPointerException
at org.apache.jsp.keiji.Top_jsp._jspService(Top_jsp.java:149)
at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:98)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:729)
at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:331)
at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:329)
at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:265)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:729)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:269)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:172)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:117)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:108)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:174)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:875)
at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:665)
at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:528)
at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:81)
at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:689)
at java.lang.Thread.run(Unknown Source)

Eclipseを使用しているのですが、原因が出てこないエラーなどが良く出てきます。
自力では、なんとも分からず、時間も消費してわからないでかなり困ってしまいます。

今回の場合は新しい処理をいれ、それがnullということは分かるのですが、
ソースは、コピーを少し変えただけで、どこがおかしいか特定できませんでした。

デバッグ(見方とかあまり分からず、触るのも2回目くらい)を利用して箇所を特定しようと、
ステップオーバーしてるうちに、ページが見つかりませんでしたとなってしまいます。

...続きを読む

Aベストアンサー

>今回の場合は新しい処理をいれ、それがnullということは分かるのですが、
>ソースは、コピーを少し変えただけで、どこがおかしいか特定できませんでした。

言葉の意味がよくわかりませんが、今までエラーもなく動作していたコードに何か追加したらエラーが出るようになったということでしょうか?

であれば追加したコードに問題がある可能性が高いので追加したコードの部分をトレースしてみるしかないでしょう。

>致命的: サーブレット jsp のServlet.service()が例外を投げました
>java.lang.NullPointerException
>at org.apache.jsp.keiji.Top_jsp._jspService(Top_jsp.java:149)

jspをコンパイルしたファイルが生成されているはずなのでそのファイルの中身を参照し、149行目付近(大抵の場合該当行かその手前)のコードを追ってみて、問題がないか確認してみるとか。

NullPointerExceptionは大抵作成したコードに問題があるケースがほとんどです。(引数で受け取った値をノーチェックで何かの関数に受け渡している、とか)

>今回の場合は新しい処理をいれ、それがnullということは分かるのですが、
>ソースは、コピーを少し変えただけで、どこがおかしいか特定できませんでした。

言葉の意味がよくわかりませんが、今までエラーもなく動作していたコードに何か追加したらエラーが出るようになったということでしょうか?

であれば追加したコードに問題がある可能性が高いので追加したコードの部分をトレースしてみるしかないでしょう。

>致命的: サーブレット jsp のServlet.service()が例外を投げました
>java.lang.NullPoi...続きを読む

QIOException ってどういうときに起こるのでしょうか?

IOException ってどういうときに起こるのでしょうか?

http://www.atmarkit.co.jp/fjava/rensai2/javaent12/javaent12.html
を見て勉強しています。

  catch ( IOException e) {
    System.out.println( "キーボードが故障しているのかもしれません" );
  }

と書いてあります。
ハード(キーボード)が故障しているのを Java のプログラムのレベル(ソフトウェア)で感知できるというのがよくわかりません。「

NumberFormatException の方はわかるのですが・・・

Aベストアンサー

現実的には、キーボードからの入力でIOExceptionが発生することは、
ほとんどあり得ないと思います。
そもそも、キーボードが故障していたとしても、
IOExceptionは投げられないでしょう。
「キーボードが故障しているのかもしれません」というのは、
その記事の著者が冗談で書いたのだと思います。

ではなぜ、try-catchを書かなくてはいけないのか?
InputStreamやBufferedReaderは、
データ入力を抽象化したものだからです。
実際の入力元はキーボードだったり、ファイルだったり、
ネットワーク接続だったりするわけですけど、
InputStreamは、その入力元の情報を持っていないので、
データを読み取る際は常に
IOExceptionをキャッチするコードを書かなくてはいけません。
たとえ、絶対にIOエラーが発生しないストリームだとしても。

さらに付け加えるなら、
そもそも「標準入力=キーボード」であるとは限りません。
(一般的にはキーボードであることが多いですが。)
Javaでは、
System.setIn(InputStream)
を呼び出して、標準入力を変えてしまうことができますし、
標準入力を指定してプログラムを実行することができるOSもあります。

追伸1:
例外をキャッチしたときは、
スタックトレースをプリントすることをおすすめします。
catch (IOException e) {
e.printStackTrace();
}

追伸2:
そのプログラムでIOExceptionを発生させる最も簡単な方法は、
readLine()を呼び出す前に
標準入力(System.in)を閉じてしまうことです。
System.in.close();

現実的には、キーボードからの入力でIOExceptionが発生することは、
ほとんどあり得ないと思います。
そもそも、キーボードが故障していたとしても、
IOExceptionは投げられないでしょう。
「キーボードが故障しているのかもしれません」というのは、
その記事の著者が冗談で書いたのだと思います。

ではなぜ、try-catchを書かなくてはいけないのか?
InputStreamやBufferedReaderは、
データ入力を抽象化したものだからです。
実際の入力元はキーボードだったり、ファイルだったり、
ネットワーク接...続きを読む

QJavaScript で動的に