- - PR -
JSP データベース (質問)
| 投稿者 | 投稿内容 | ||||||||
|---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2004-08-12 16:19
本当に皆様には御迷惑をかけて済みません。
早速、リクエストレスポンス処理ができているかどうか以下の3点試しました。 Servlet Examples with Code の 3点(Request Info/Request Headers/Request Parameters) ともうまくいきました。確かめ方はこれで大丈夫ですか?自信が無いのでチェックしてください。 自宅サーバの servlet用ディレクトリに各3点の class ファイルを格納して、サーブレットを呼び出す。この方法で大丈夫でしょうか?もし、間違っていましたら、御指導の程よろしくお願いします。 「ログに出力」する方法の件ですが、まだ、勉強を始めたばかりなのでその内容(ログ?ログを出力?)が頭の中で ? 状態なので、今からあちこちのHPでログとは何か勉強してきます。その「ログに出力」する方法について良きHPがありました、御紹介いただけますか。よろしくお願いします。 | ||||||||
|
投稿日時: 2004-08-12 16:44
ログ出力の意味、分かりました。実際に行って、後程報告いたします。よろしくお願いします。
| ||||||||
|
投稿日時: 2004-08-12 20:07
済みません、ギブアップです;;
ログ出力の意味は分かったのですが、あちこちのHPを参考に何度か作ったのですがうまくいかず、仕舞いには HTTP Status 503 になり、どのように作ったらいいのか正直分かりません。すみません。以下のサンプルの場合、どのようにログ出力をさせるのですか?よろしくお願いします。 import java.io.*; import javax.servlet.*; import javax.servlet.http.*; import java.net.*; import java.sql.*; public class ServletExample1 extends HttpServlet{ public void doGet (HttpServletRequest request,HttpServletResponse response) throws ServletException, IOException{ String server = "localhost"; //MySQLサーバ String db = "test"; // String user = "root"; //ユーザー名 String pass = "sorosu00sql"; //パスワード String url = "jdbc:mysql://" + server + "/" + db + "?useUnicode=true&characterEncoding=EUC-JP"; Connection con = null; //HTML表示のため PrintWriter out; response.setContentType("text/html; charset=EUC-JP"); out = response.getWriter(); out.println("<HTML><HEAD><TITLE>servletからの接続1</TITLE></HEAD><BODY>"); try{ //ドライバのロード Class.forName("org.gjt.mm.mysql.Driver"); //MySQLサーバへの接続 con = DriverManager.getConnection(url,user,pass); //Statementオブジェクトの生成 Statement stmt = con.createStatement(); //漢字を含んだSQL文 String sql_str = "INSERT INTO list (name,memo) VALUES ('4番目','サーブレットからのテスト')"; stmt.executeUpdate(sql_str); out.println("漢字を含んだレコードの挿入成功です!"); //切断 con.close(); stmt.close(); out.close(); }catch(SQLException e) { out.println("接続失敗です〜<br>\n理由:" + e.toString()); }catch(Exception e){ e.printStackTrace(); }finally{ try{ //切断 con.close(); }catch(Exception e){} } } } | ||||||||
|
投稿日時: 2004-08-12 23:25
ということは、Tomcatは基本的に動作していそうですね。
このサンプルはcatch節にprintStackTraceを使っている(と思われます)ので、 $CATALINA_HOME/logs/stderr.log あたりにログが残っているはずです。 また、レスポンス画面にエラーコードが表示された時はException項に表示されています。 スタックトレースは長いですが、まず最初の1〜2行目を見ればよろしいかと。 # 苦言になってしまって申し訳ないのですが、「ギブアップ→丸投げ」しないように しましょう。他人にこれ言える立場じゃないんですが「投げたら成長ない」ですね。 | ||||||||
|
投稿日時: 2004-08-13 05:30
連絡遅くなり申し訳ございません。結局あの後も色々やったのですが埒があきません。仕舞いには Tomcat 自体が再起動できなくなるという事態になってしまいました。もう1週間この状態が進展してないし、Tomcat の機嫌も良くないので、このさえもう一度 Linux 内を総点検のつもりで入れ直してみます。ちょっと元の状態には時間がかかるので、終わり次第少し寝てから、もう一度リベンジします。報告はその後でよろしいでしょうか?本当にご迷惑をおかけして申し訳ございません;;
うまくいけば、明日、本屋でログ出力について勉強します。 | ||||||||
|
投稿日時: 2004-08-13 09:10
サーブレットでログを出力するなら、
javax.servlet.GenericServlet#log(java.lang.String msg) を使用するのが一番楽かと思います。 例外のメッセージを出力したい場合は、 同クラスの、log(java.lang.String message, java.lang.Throwable t) を使用してください。 ※javax.servlet.GenericServletは、javax.servlet.http.HttpServletのスーパークラス | ||||||||
|
投稿日時: 2004-08-15 07:52
御報告が遅くなり申し訳ございません。あれから昨日まで、Linux内の入れ換え及びJSP/サーブレット/MySQL/JDBCの起動確認をすませました。無事問題なく起動してます。御迷惑をお掛けしました。 (^_^;)
問題があると思っていたソースも難なく返答します。そうすると前回と今回相違点なのですが、 *以前* J2SDK:1.4.2_05 Apache:Fedora2のデフォルト(2.0.49-4) Tomcat:Fedora2のデフォルト(4.1.27-13) MySQL:4.0.20 JDBC:3.0.14-production export JAVA_HOME=/usr/java/j2sdk1.4.2_05 export PATH=$PATH:$JAVA_HOME/bin export TOMCAT_HOME=/usr/share/tomcat export CATALINA_HOME=/usr/share/tomcat export CLASSPATH=.:$JAVA_HOME/jre/lib:$JAVA_HOME/lib:$JAVA_HOME/lib/tools.jar:$CATALINA_HOME/common/lib/mysql-connector-java-3.0.14-production-bin.jar:$CATALINA_HOME/common/lib *今回* J2SDK:1.4.2_05 Apache:Fedora2のデフォルト(2.0.49-4) Tomcat:5.0.27 MySQL:4.0.20 JDBC:3.0.14-production export JAVA_HOME=/usr/local/j2sdk1.4.2_05 export PATH=$PATH:$JAVA_HOME/bin export TOMCAT_HOME=/usr/local/tomcat export CATALINA_HOME=/usr/local/tomcat export CLASSPATH=.:$JAVA_HOME/jre/lib:$JAVA_HOME/lib:$JAVA_HOME/lib/tools.jar:$CATALINA_HOME/common/lib/mysql-connector-java-3.0.14-production-bin.jar:$CATALINA_HOME/common/lib 上記の違いは Tomcatがデフォルトのものではないことと格納場所の違いだけです。 あとは、両者の共通なのですが、Fedora2 のMySQLのデフォルトで推奨されているのは3.23.58-9であることです。相性なのかな? それともやっぱり、自分の設定ミスと思った方がよいのでしょうか? | ||||||||
|
投稿日時: 2004-08-16 09:16
おはようございます。成功して一安心ですね 。
えーっと、これはryoさんの宿題ということで・・・ バージョンの相違によるものかどうかについては、これだけの情報で判断するのは 難しいと思われます。また、設定ミスかどうかもお答えできないのではないかと。 (confファイルならびにXMLファイルを見ないとなんとも・・・。) 少なくともコマンドラインベースでは成功していたので OS - MySQL 間の相性が原因とは 考えにくいですし、また、Tomcat - JDBC はメジャーな組み合わせですので、 (この問題の原因になったとは)やはり考えにくいのでは?と思います。 ※相性の確認はそれぞれのオープンソース配布元のバグ関連の記事を参照してください。 それと解析には例外の内容を見る必要があります。 # なんとなくポートの重複があったのかなーと推測できなくもないんですが、今となっては 環境が変わっているので追求することはできないかも。 | ||||||||
