Javaの実行時エラーの解決法

このQ&Aのポイント
  • Javaの実行時エラーの解決法についてまとめました。
  • Struts+MySql+TomcatでのWEBアプリ開発において、実行時エラーが発生しています。
  • エラーメッセージ「javax.servlet.ServletException: サーブレットの実行により例外を投げました」の原因や解決法を知りたいです。
回答を見る
  • ベストアンサー

Javaの実行時エラーの解決法

今、Struts+MySql+TomcatでWEBアプリを作成している初心者です。 現在実行時エラーをどうしても解決できず、困り果てています。 ログインのjspから、ログイン情報はFormにセットされているのですが、FormからActionに遷移するまでにどうやらエラーがおきているようです。 ただし、これも不明確で、Eclipseでデバックを行うと、「(クラス名) 行: 805 のソースが見つかりませんでした。」というメッセージが出ている状況です。(ただ、変数を見ると値がきちんとセットされているのは確認できています) エラーは以下のものです。 javax.servlet.ServletException: サーブレットの実行により例外を投げました at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:222) [中略] 【root case】 java.lang.NoClassDefFoundError: org/aspectj/lang/Signature at java.lang.Class.forName0(Native Method) at java.lang.Class.forName(Unknown Source) ・ ・ ・ エラーを調べてみても、良い解決法が見つかりませんでした。 どなたかご存知の方がいらっしゃれば、ぜひご教授下さい。

  • sheer
  • お礼率86% (13/15)
  • Java
  • 回答数1
  • ありがとう数1

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

  • ベストアンサー
noname#49664
noname#49664
回答No.1

ちょっと状況がはっきりしないのですが、「ソースが見つかりませんでした」というエラーは、Eclipse上でTomactをデバッグすると発生することがあるようです。検索すると、この組み合わせでこのエラーが起こる事例がいくつか見つかります。ですので、このエラーが本当の原因か、それともこれはEclipse上でデバッグしたために発生したもので、本来の問題は別にあるのか、切り分ける必要があるように思えます。  デバッグを使わず、通常の実行で、1つ1つのステップに細かくSystem.out.printlnをつけるなどして、どの時点まで正常に動作し、どの時点で問題が起こっているかを探し出してみてはどうでしょう。・・具体的なソースが見えないので、これ以上はなんともいえないのですが。

sheer
質問者

お礼

ありがとうございました。自己解決致しました。どうやら、MysqlのJDBCドライバが原因だったようです。海外のフォーラムに同じ事例が出ていました。

関連するQ&A

  • Tomcatでエラー

    以下のようなエラーが発生してしまいます。Strutsをやっているのですが、考えられる問題はどんなことですか?ご教授ください。 Exception report message description The server encountered an internal error () that prevented it from fulfilling this request. exception javax.servlet.ServletException: サーブレットの実行により例外を投げました at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:269) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:193)      略 root cause java.lang.NoClassDefFoundError: java/lang/CharSequence at form.QuestionForm.validate・・・・。

    • ベストアンサー
    • Java
  • Javaプログラム実行時のエラー

    最近Javaを独学で始めた初心者です。 コマンドプロンプトにてファイル名”SampleD1L3"を 実行しようとすると下記のようなエラーになってしまいます。 C:\Users\>java SampleD1L3 Exception in thread "main" java.lang.NoClassDefFoundError: SampleD1L3 Caused by: java.lang.ClassNotFoundException: SampleD1L3 at java.net.URLClassLoader$1.run(Unknown Source) at java.security.AccessController.doPrivileged(Native Method) at java.net.URLClassLoader.findClass(Unknown Source) at java.lang.ClassLoader.loadClass(Unknown Source) at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source) at java.lang.ClassLoader.loadClass(Unknown Source) at java.lang.ClassLoader.loadClassInternal(Unknown Source) Could not find the main class: SampleD1L3. Program will exit. 本に載っていた対処法として、 "java -classpath . SampleD1L3"を再度入力しても 上記のようなエラーになってしまいます。 なにぶん初心者なもので解決方法が全く分かりません(>_<) どなたか解決方法お教えて下さいませ。 宜しくお願いします。

    • ベストアンサー
    • Java
  • cygwinでjavaを実行するとエラー

    cygwinでjavaを実行するとエラーになるのですが、 解決策を教えていただけないでしょうか。 こんな所で数時間も考えてしまっており、作業が滞っています。 どなたか教えていただけないでしょうか。よろしくお願い致します。 cygwin上でenvを実行した時の結果です。(一部抜粋) JAVA_HOME=/cygdrive/c/Program Files/Java/jdk1.6.0_31 CLASSPATHも設定していたのですが、HelloWorld位だったら必要ないかと思い、unsetしました。 cygwinでプロジェクト直下に移動して、 コマンド「java HelloWorld」を実行すると以下のエラーとなる。 ============================================================================= $ java HelloWorld java.lang.NoClassDefFoundError: HelloWorld at java.lang.ClassLoader.defineClass1(Native Method) at java.lang.ClassLoader.defineClassCond(Unknown Source) at java.lang.ClassLoader.defineClass(Unknown Source) at java.security.SecureClassLoader.defineClass(Unknown Source) at java.net.URLClassLoader.defineClass(Unknown Source) at java.net.URLClassLoader.access$000(Unknown Source) at java.net.URLClassLoader$1.run(Unknown Source) at java.security.AccessController.doPrivileged(Native Method) at java.net.URLClassLoader.findClass(Unknown Source) at java.lang.ClassLoader.loadClass(Unknown Source) at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source) at java.lang.ClassLoader.loadClass(Unknown Source) Could not find the main class: HelloWorld. Program will exit. Exception in thread "main" ============================================================================= 因みに、ソースは以下です。 [HelloWorld.java] package co.jp.test; public class HelloWorld { public static void main(String args[]){ System.out.println("HelloWorld"); } } また、ソースをパッケージから取り出して(パッケージを削除)、 プロジェクト直下にコピーして実行するとうまくいきます。 明らかに、パッケージにあるファイルをjavaコマンドで実行する時の固有のエラーかと思うのですが、 パッケージに含まれるファイルをcygwinで実行する時に気をつけることはありますでしょうか? 因みに、ソースは以下です。 [HelloWorld.java] public class HelloWorld { public static void main(String args[]){ System.out.println("HelloWorld"); } }

    • ベストアンサー
    • Java
  • java.lang.NoClassDefFoundErrorというエラーが出ます その2

    ご質問させて頂きます。 java.lang.NoClassDefFoundErrorというエラーが出ます http://oshiete1.goo.ne.jp/kotaeru.php3?q=952983 の続きの質問なんですが・・・。 次のような実行時エラーが出ます。 java.lang.ClassNotFoundException: org.postgresql.Driver at java.net.URLClassLoader$1.run(URLClassLoader.java:198) at java.security.AccessController.doPrivileged(Native Method) at java.net.URLClassLoader.findClass(URLClassLoader.java:186) at java.lang.ClassLoader.loadClass(ClassLoader.java:299) at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:265) at java.lang.ClassLoader.loadClass(ClassLoader.java:255) at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:315) at java.lang.Class.forName0(Native Method) at java.lang.Class.forName(Class.java:140) at sample1.main(sample1.java:8) そこで、 >PostgreSQLのODBCドライバをCLASSPATHに含めていますか? >postgresql.jarとかpg72jdbc2.jarといったファイルがどこかにあるはずです. と、回答者の方からアドバイスをして頂きました。 ところが、postgresql.jarとかpg72jdbc2.jarもありませんでした。 ネットで検索をしたところ、「postgresql743.jar」というのがありましたので /usr/javaに格納しました。 /etc/profileに、 export PATH=$PATH:/usr/java export CLASSPATH=$CLASSPATH:/usr/java. と追加しました。 しかし、同じエラーが出てします。 対処方法をご存じでしたら、ご教授して頂けたら幸いです。

    • ベストアンサー
    • Java
  • JAVA実行時のエラーメッセージについて

    コンパイル後、実行するとコードはどのようなものでも、同様のエラーメッセージが表示されます。 例えば、超基本の下記のソースでも表示されます。 //Sample01.java class Sample01 { public static void main (String args[]) { System.out.println("Hello World"); } } エラーメッセージは同様に、 「Excption in thread "main"java.lang.NoClassDefFoundError: Sample01」 と表示されてしまいます。 このエラーの対処方法をお願いします。

    • ベストアンサー
    • Java
  • 実行時のNoClassDefFoundErrorが解決できません

    Windows で コマンドプロンプトから Java のプログラム実行時に NoClassDefFoundError が発生する問題で Web 等を参考にいろいろ対処してみたのですが、 どうしても解決しないでいます。 JDK, JRE は 1.6.0_01 を以下にインストールしており、 C:\Program Files\Java\jdk1.6.0_01 C:\Program Files\Java\jre1.6.0_01 C:\Program Files\Java\jdk1.6.0_01\bin にPATHを通しています。 CLASSPATH 環境変数は設定していません。 その上で、以下のことをやりました。 (1) HelloWorld.java というファイルを D:\test フォルダに作成する。   内容は以下の通り。 HelloWorld.java ------------------------------------------------------------------------------- package testpackage; public class HelloWorld { public static void main(String[] args) { System.out.println("Hello World!"); } } ------------------------------------------------------------------------------- (2) コマンドプロンプトで D:\test に移動し、以下を実行する。 javac HelloWorld.java (正常終了し、HelloWorld.class が D:\test に作成されたことを確認) (3) 引き続きコマンドプロンプトで、以下を実行する。(例外が発生) java HelloWorld ------------------------------------------------------------------------------- Exception in thread "main" java.lang.NoClassDefFoundError: HelloWorld (wrong nam e: testpackage/HelloWorld) at java.lang.ClassLoader.defineClass1(Native Method) at java.lang.ClassLoader.defineClass(Unknown Source) at java.security.SecureClassLoader.defineClass(Unknown Source) at java.net.URLClassLoader.defineClass(Unknown Source) at java.net.URLClassLoader.access$000(Unknown Source) at java.net.URLClassLoader$1.run(Unknown Source) at java.security.AccessController.doPrivileged(Native Method) at java.net.URLClassLoader.findClass(Unknown Source) at java.lang.ClassLoader.loadClass(Unknown Source) at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source) at java.lang.ClassLoader.loadClass(Unknown Source) at java.lang.ClassLoader.loadClassInternal(Unknown Source) ------------------------------------------------------------------------------- Web の情報を参考に java -cp . HelloWorld java -cp D:\test HelloWorld も実行してみましたが、同様の結果でした。 (4) 試しに以下も実行してみました。 javap HelloWorld ------------------------------------------------------------------------------- Compiled from "HelloWorld.java" public class testpackage.HelloWorld extends java.lang.Object{ public testpackage.HelloWorld(); public static void main(java.lang.String[]); } ------------------------------------------------------------------------------- 以上です。 これ以上の対処方法が全く思い当たらない状態なのですが、 原因のわかる方がいらっしゃいましたらお願いします。

    • ベストアンサー
    • Java
  • JAVAのエラーについて

    私はJAVAを始めたばかりの初心者です。 中間コードclassファイルを実行するとエラーが出てしまいます。 誰かエラーの取り方を教えていただけませんか? java sample.class で実行。 すると Exception in thread "main"java.lang.NoClassDefFoundError: sample/class となり実行結果が得られません。 私が気になる点があります。 コンパイラによって生成されたclassファイルが「不明なアプリケーション」となって開くことが出来ません。 これもエラーに関係してるのでしょうか?

  • 実行時エラーの内容がわかりません

    コンパイル後、実行すると次のようなエラーが発生します。 ------ Apache Tomcat/4.0.6 - HTTP Status 500 - Internal Server Error [type] Exception report [message] Internal Server Error [description] The server encountered an internal error (Internal Server Error) that prevented it from fulfilling this request. [exception] javax.servlet.ServletException: サーブレットの実行により例外を投げました at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:269)    (中略) [root cause] java.lang.NoClassDefFoundError: com/odi/excelon/filesystem/DirectoryEnumeration at m7_tools.dbSearch.(dbSearch.java:35) at m7_listDisp.doGet(m7_listDisp.java:79) at javax.servlet.http.HttpServlet.service(HttpServlet.java:740) ----- 下から2行目でdbSearchをnewしていて、 3行目はdeSearch内のコンストラクタ(他のクラスをnewしている)部分です。 ちなみに"com/odi/excelon/filesystem"は"com.exln.dxe.filesystem"に変更になっていて、後者をimportしています。 コード自体は旧版の使いまわしなのですが。 classpath等も見たのですが、いまひとつエラー内容がわからなくて困っています。よろしくお願いします。

    • ベストアンサー
    • Java
  • JAVA実行時エラーについて教えてください

    JAVAを最近になって始めた初心者です。 コンパイルは問題なく終了するのですが、実行時に Exception in thread "main" java.lang.NoClassDefFoundError:HelloWorld(Unsupported major.minor version 49.0)    at java.lang.ClassLoader.defineClass0(Native Method)    at java.lang.ClassLoader.defineClass(Unknown Source) と表示されます。実際には at java.~ 以降にも複数行文字が表示されています。(全部で12行です) ソースファイル及びクラスファイルの格納先は c:\java\HelloWorld.java c:\java\HelloWorld.class ソースは以下の様に記述しました。 class HelloWorld { public static void main(String args[]) { System.out.println("HelloWorld"); } } 1)過去ログから“環境設定のクラスパス”及びコマンドプロンプトで “java -cp. HelloWorld”を確認しました。そうすると以下のようなメッセージが表示されます。 Unrecognized option: -cp. Could not create the Java virtual machine. 2)システム環境変数の“PATH”は以下のように記述しております。 ;C:\Program Files\Java\jdk1.5.0_07\bin 3)システム環境変数の“CLASSPATH”は指定しておりません。というより、指定しても現象は変わりませんでした。 ご教授願えないでしょうか。宜しくお願い致します。

    • ベストアンサー
    • Java
  • javaでのORACLEへの接続

    javaでのORACLEへの接続方法を教えてください javaの初心者なのですが、JAVAでのORACLEへの接続方法がよくわかりません。 解説書のORACLEへの接続へのクラスファイルを実行してみましたがエラーとなって しまいます。(コンパイルは通ります)ちなみにクラスファイルの中身は... import java.sql.*; /* 省略 */ Class.forName("oracle.jdbc.driver.OracleDriver"); String url = "jdbc:oracle:thin:@hostname:1521:ORA817"; /* 省略 */ Connection conn = DriverManager.getConnection(url, user, password); /* 以下省略 */ この中でJDBCドライバのURLの@hostnameの部分にサーバーのIP(202.15....) ORA817の部分にデータベース名を入れ、ユーザ-、パスワードも実在するものにしてあります。Class.forNameの部分は変える必要があるのでしょうか?ファイルの場所は"C:\A116"です。ちなみにエラーメッセージは... C:\A116>java GetConnectionDemo java.lang.ClassNotFoundException: oracle.jdbc.driver.OracleDriver at java.net.URLClassLoader$1.run(Unknown Source) at java.security.AccessController.doPrivileged(Native Method) at java.net.URLClassLoader.findClass(Unknown Source) at java.lang.ClassLoader.loadClass(Unknown Source) at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source) at java.lang.ClassLoader.loadClass(Unknown Source) at java.lang.ClassLoader.loadClassInternal(Unknown Source) at java.lang.Class.forName0(Native Method) at java.lang.Class.forName(Unknown Source) at GetConnectionDemo.main(GetConnectionDemo.java:6) ORACLEサーバ WINDOWS2000 ORACLE 8.1.6i です。 宜しくお願い致します。

    • ベストアンサー
    • Java

専門家に質問してみよう