- PR -

Sun ONE Studio 4で構築したクラスファイルをTomcatに移行する場合の設定は?

投稿者投稿内容
nabeママ
常連さん
会議室デビュー日: 2003/04/11
投稿数: 39
投稿日時: 2003-05-13 15:52
こんにちはnabeママです。ちょっとご無沙汰です。
まだまだ勉強が足りなくてまた書き込みしました。よろしくご教授下さいませ。

JAVA初心者なのでサーバサイドJavaプログラミング入門ハンドブックを購入し、簡単に開発できる「Sun ONE Studio 4」とJava2SDK SE 1.4.1をインストールして開発を行い、
自パソコンではなんとか一連の作業を実行することが出来ました。
そこで、他のパソコンにTomcat4.1.24とJava2SDK SE 1.4.1をインストールしクラスファイルのみをTomcatにコピーして
実行したところデータベースへのアクセスでこけました。

自パソコンでの開発環境は
 Sun ONE Studio 4
 Tomcat4.0.1(Sun ONE Studio 4に入ってました)
 Java2SDK SE 1.4.1
別のパソコンは
 Tomcat4.1.24 NTサービスをonにしてインストール(ただし手動です)
 Java2SDK SE 1.4.1
共にWindowsXPで、DBはACCESS97です。

環境変数は CATALINA_HOMEとJAVA_HOMEを追加
pathは j2sdkのbin、Tomcatのbin、Tomcatのservlet.jar のフォルダを追加

TomcatのServer.xmlには
<Context path="" docBase="Test" debug="0" reloadable="true"/>
作業フォルダのContextを追加

ローカルホスト8080を起動するとINDEX.htmlから別のサーブレットを表示するようになっており、
それは表示できています。ですからフォルダの設定はOKかなと・・・

どうぞよろしくお願いします。



taku
ぬし
会議室デビュー日: 2002/11/12
投稿数: 918
お住まい・勤務地: 墨田区→中野区
投稿日時: 2003-05-13 16:32
引用:

nabeママさんの書き込み (2003-05-13 15:52) より:
こんにちはnabeママです。ちょっとご無沙汰です。
まだまだ勉強が足りなくてまた書き込みしました。よろしくご教授下さいませ。

JAVA初心者なのでサーバサイドJavaプログラミング入門ハンドブックを購入し、簡単に開発できる「Sun ONE Studio 4」とJava2SDK SE 1.4.1をインストールして開発を行い、
自パソコンではなんとか一連の作業を実行することが出来ました。
そこで、他のパソコンにTomcat4.1.24とJava2SDK SE 1.4.1をインストールしクラスファイルのみをTomcatにコピーして
実行したところデータベースへのアクセスでこけました。

自パソコンでの開発環境は
 Sun ONE Studio 4
 Tomcat4.0.1(Sun ONE Studio 4に入ってました)
 Java2SDK SE 1.4.1
別のパソコンは
 Tomcat4.1.24 NTサービスをonにしてインストール(ただし手動です)
 Java2SDK SE 1.4.1
共にWindowsXPで、DBはACCESS97です。


 nabeママさんはもし部下に、
”データベースへのアクセスでこけました”
と言われただけで解りますか?
エラーメッセージ等の状況証拠も提示しないと誰も回答できません。

私の勘ですが、ODBCの設定がされていないだけではないでしょうか?
nabeママ
常連さん
会議室デビュー日: 2003/04/11
投稿数: 39
投稿日時: 2003-05-13 17:05
takuさん、ご指摘ありがとうございます。

データベースへのアクセス処理を次のように書いてます。

Connection con = null;
Statement stmt = null;
ResultSet rs = null;

try {
  con = DriverManager.getConnection("jdbc:odbc:DocMDB");
  stmt = con.createStatement();
} catch (Exception e) {
out.println("エラー内容は「" + e + "」です。<br>");
  e.printStackTrace();
}
以下省略

この時表示されたエラー内容は
  エラー内容は「java.sql.SQLException: General error」です。
です。

一般的なエラーと解釈するのでしょうか・・・
ODBCの設定はできています。


taku
ぬし
会議室デビュー日: 2002/11/12
投稿数: 918
お住まい・勤務地: 墨田区→中野区
投稿日時: 2003-05-14 09:58
引用:

nabeママさんの書き込み (2003-05-13 17:05) より:
takuさん、ご指摘ありがとうございます。

データベースへのアクセス処理を次のように書いてます。

Connection con = null;
Statement stmt = null;
ResultSet rs = null;

try {
  con = DriverManager.getConnection("jdbc:odbc:DocMDB");
  stmt = con.createStatement();
} catch (Exception e) {
out.println("エラー内容は「" + e + "」です。<br>");
  e.printStackTrace();
}
以下省略

この時表示されたエラー内容は
  エラー内容は「java.sql.SQLException: General error」です。
です。

一般的なエラーと解釈するのでしょうか・・・
ODBCの設定はできています。





 一般エラーじゃ判断のしようがないですね。
SQLExceptionなので、Tomcatの設定はまったく無関係かと。
ODBCの設定はできているとおっしゃいますが、
DB環境の問題なので、AccsessのバージョンやODBCの問題等です。
(別の環境では動作していたとのことなので、プログラムはOKだと思います)
それと、例外発生時のエラーメッセージは、もっと沢山出ているはずです。
それを見ればどこで例外が発生しているか解ります。
それは確認されていますか?
※どんな場合でも、問題(エラー)の発生箇所の特定は必須ですよ。

 エラーとは無関係ですが、例外をExceptionだけでキャッチするのは止めませんか?
例外は対応したExceptionのサブクラス(SQLException等)でキャッチすべきです。
//例
try{
}catch(SQLException sqle){
}catch(Exception e){
}finally{//←必須でない
}
nabeママ
常連さん
会議室デビュー日: 2003/04/11
投稿数: 39
投稿日時: 2003-05-16 09:40
おはようございます。nabeママです。レス遅くなって申し訳ありません。
takuさん回答ありがとうございます。

同じプログラムでも環境(バージョン等)が違うだけでも変わってくるものなのですね。
あまり関係ないかと思ってました。
ACCESSのバージョンも変わっていないし・・・
もう少し調べてみます。
TOMCATのみでWEBサーバとして使用していることは問題ないのでしょうか?
Apacheと連携させた方が安定するのでしょうか?

例外処理のご教授ありがとうございます。
早々に手直しをしたいと思います。
taku
ぬし
会議室デビュー日: 2002/11/12
投稿数: 918
お住まい・勤務地: 墨田区→中野区
投稿日時: 2003-05-16 10:16
引用:

nabeママさんの書き込み (2003-05-16 09:40) より:
おはようございます。nabeママです。レス遅くなって申し訳ありません。
takuさん回答ありがとうございます。

同じプログラムでも環境(バージョン等)が違うだけでも変わってくるものなのですね。
あまり関係ないかと思ってました。
ACCESSのバージョンも変わっていないし・・・
もう少し調べてみます。
TOMCATのみでWEBサーバとして使用していることは問題ないのでしょうか?
Apacheと連携させた方が安定するのでしょうか?

例外処理のご教授ありがとうございます。
早々に手直しをしたいと思います。


 運用環境ならWEBサーバーと連携させますが、
開発環境でそんな必要はまったくないです。
WEBサーバーとAPサーバーを連携させる大きな利点は、
URLのポート番号が省略できることです。
http://localhost:8080/
    ↓
http://localhost/
あと、負荷分散とか他にも効果はありますが。

 環境面はサーバーサイドの初心者が必ず躓く事柄なので、
時間が許す限りじっくり調査して勉強されることをお勧めします。
amnaky
ベテラン
会議室デビュー日: 2002/09/13
投稿数: 75
お住まい・勤務地: 東京
投稿日時: 2003-05-16 13:57
引用:

nabeママさんの書き込み (2003-05-16 09:40) より:

TOMCATのみでWEBサーバとして使用していることは問題ないのでしょうか?
Apacheと連携させた方が安定するのでしょうか?



takuさんのおっしゃるとおり開発では連携させる必要は
あまりありませんが、私は開発時と運用時と環境が異なるというのが
不安なので開発時もApacheをかましています。

しかし、これはケースバイケースですよね。
少なくとも、データベースアクセスまわりに影響が出るとはまず
考えられないです。

Tomcatはあくまでサーブレットエンジンであり、HTTPサーバ機能を
専門としてるわけではないので、そこの専門家であるApacheに、
静的コンテンツの表示、アクセスロギング、CGI、SSLなど得意なこと
をやってもらいましょう、ということです。

>WEBサーバーとAPサーバーを連携させる大きな利点は、
>URLのポート番号が省略できることです。
>http://localhost:8080/
>    ↓
>http://localhost/

これはTomcatでもListenポートを80にすればできることなので
違うのでは?
taku
ぬし
会議室デビュー日: 2002/11/12
投稿数: 918
お住まい・勤務地: 墨田区→中野区
投稿日時: 2003-05-16 15:14
引用:

amnakyさんの書き込み (2003-05-16 13:57) より:
これはTomcatでもListenポートを80にすればできることなので
違うのでは?



知りませんでした・・・(汗)
勉強になりました。

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