- PR -

JSP データベース (質問)

投稿者投稿内容
kejiuyudu
ベテラン
会議室デビュー日: 2004/08/11
投稿数: 82
投稿日時: 2004-08-12 16:19
本当に皆様には御迷惑をかけて済みません。
早速、リクエストレスポンス処理ができているかどうか以下の3点試しました。
Servlet Examples with Code の 3点(Request Info/Request Headers/Request Parameters) ともうまくいきました。確かめ方はこれで大丈夫ですか?自信が無いのでチェックしてください。
自宅サーバの servlet用ディレクトリに各3点の class ファイルを格納して、サーブレットを呼び出す。この方法で大丈夫でしょうか?もし、間違っていましたら、御指導の程よろしくお願いします。

「ログに出力」する方法の件ですが、まだ、勉強を始めたばかりなのでその内容(ログ?ログを出力?)が頭の中で ? 状態なので、今からあちこちのHPでログとは何か勉強してきます。その「ログに出力」する方法について良きHPがありました、御紹介いただけますか。よろしくお願いします。
kejiuyudu
ベテラン
会議室デビュー日: 2004/08/11
投稿数: 82
投稿日時: 2004-08-12 16:44
ログ出力の意味、分かりました。実際に行って、後程報告いたします。よろしくお願いします。
kejiuyudu
ベテラン
会議室デビュー日: 2004/08/11
投稿数: 82
投稿日時: 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){}
}
}

}
未記入
大ベテラン
会議室デビュー日: 2003/06/28
投稿数: 219
投稿日時: 2004-08-12 23:25
引用:

ryoさんの書き込み (2004-08-12 16:19) より:
早速、リクエストレスポンス処理ができているかどうか以下の3点試しました。
Servlet Examples with Code の 3点(Request Info/Request Headers/Request Parameters) ともうまくいきました。


ということは、Tomcatは基本的に動作していそうですね。
引用:

「ログに出力」する方法の件ですが、まだ、勉強を始めたばかりなのでその内容(ログ?ログを出力?)が頭の中で ? 状態なので、今からあちこちのHPでログとは何か勉強してきます。


このサンプルはcatch節にprintStackTraceを使っている(と思われます)ので、
$CATALINA_HOME/logs/stderr.log あたりにログが残っているはずです。
また、レスポンス画面にエラーコードが表示された時はException項に表示されています。
スタックトレースは長いですが、まず最初の1〜2行目を見ればよろしいかと。

# 苦言になってしまって申し訳ないのですが、「ギブアップ→丸投げ」しないように
しましょう。他人にこれ言える立場じゃないんですが「投げたら成長ない」ですね。
kejiuyudu
ベテラン
会議室デビュー日: 2004/08/11
投稿数: 82
投稿日時: 2004-08-13 05:30
連絡遅くなり申し訳ございません。結局あの後も色々やったのですが埒があきません。仕舞いには Tomcat 自体が再起動できなくなるという事態になってしまいました。もう1週間この状態が進展してないし、Tomcat の機嫌も良くないので、このさえもう一度 Linux 内を総点検のつもりで入れ直してみます。ちょっと元の状態には時間がかかるので、終わり次第少し寝てから、もう一度リベンジします。報告はその後でよろしいでしょうか?本当にご迷惑をおかけして申し訳ございません;;


うまくいけば、明日、本屋でログ出力について勉強します。
taku
ぬし
会議室デビュー日: 2002/11/12
投稿数: 918
お住まい・勤務地: 墨田区→中野区
投稿日時: 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のスーパークラス
kejiuyudu
ベテラン
会議室デビュー日: 2004/08/11
投稿数: 82
投稿日時: 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であることです。相性なのかな?
それともやっぱり、自分の設定ミスと思った方がよいのでしょうか?
未記入
大ベテラン
会議室デビュー日: 2003/06/28
投稿数: 219
投稿日時: 2004-08-16 09:16
おはようございます。成功して一安心ですね 。

引用:

上記の違いは Tomcatがデフォルトのものではないことと格納場所の違いだけです。
あとは、両者の共通なのですが、Fedora2 のMySQLのデフォルトで推奨されているのは3.23.58-9であることです。相性なのかな?
それともやっぱり、自分の設定ミスと思った方がよいのでしょうか?



えーっと、これはryoさんの宿題ということで・・・

バージョンの相違によるものかどうかについては、これだけの情報で判断するのは
難しいと思われます。また、設定ミスかどうかもお答えできないのではないかと。
(confファイルならびにXMLファイルを見ないとなんとも・・・。)
少なくともコマンドラインベースでは成功していたので OS - MySQL 間の相性が原因とは
考えにくいですし、また、Tomcat - JDBC はメジャーな組み合わせですので、
(この問題の原因になったとは)やはり考えにくいのでは?と思います。
※相性の確認はそれぞれのオープンソース配布元のバグ関連の記事を参照してください。
それと解析には例外の内容を見る必要があります。

# なんとなくポートの重複があったのかなーと推測できなくもないんですが、今となっては
環境が変わっているので追求することはできないかも。

スキルアップ/キャリアアップ(JOB@IT)