- PR -

type 2 jdbc経由のDB2へのアクセスでjava.lang.ClassNotFoundException: com/ibm/db2/jcc/DB2Driverのエラ

1
投稿者投稿内容
社内竜王
常連さん
会議室デビュー日: 2006/12/12
投稿数: 20
投稿日時: 2006-12-14 10:16
type 2 jdbcドライバを使ったDB2へのアクセスに失敗していて困っております。

-db2jcc.jar db2jcc_licence_cu.jar db2jcc_licence_cisuz.jar
をクラスパスに指定。

jdbcドライバを指定しているソースは

package login;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;

import javax.servlet.ServletContext;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.apache.struts.action.Action;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;

public class sampleAction extends Action {

public ActionForward execute(
ActionMapping mapping,
ActionForm form,
HttpServletRequest request,
HttpServletResponse response)
throws Exception {

ServletContext context = getServlet().getServletContext();

sampleForm sap = new sampleForm();
String ID = sap.getId();
String PW = sap.getPw();

try {
Class.forName("com.ibm.db2.jcc.DB2Driver ").newInstance();
Connection dbConn = DriverManager.getConnection("jdbc:db2:MYMALL", "db2admin", "db2admin");
Statement stmt = dbConn.createStatement();
ResultSet rs =stmt.executeQuery("select * from DB2ADMIN.PASSWORD where ID = '" + ID + "'");

String pwstr = rs.getString("PW");
if (PW.equals(pwstr)) {
String namestr = rs.getString("NAME");
// 要求へ属性と属性値をセット
sap.setNameresult(namestr);
String name1 = sap.getNameresult();
context.setAttribute("NAME1", name1);
}
stmt.close();
dbConn.close();

} catch (Exception e) {
e.printStackTrace();
}
return (mapping.findForward("success"));
}
}

上記のコードを実行すると
java.lang.ClassNotFoundException: com/ibm/db2/jcc/DB2Driver
となります。

チェックするべき点や
解決策についてご存知の方がいらっしゃいましたら
どうか宜しくお願いします。



[ メッセージ編集済み 編集者: 社内竜王 編集日時 2006-12-14 10:16 ]

[ メッセージ編集済み 編集者: 社内竜王 編集日時 2006-12-14 10:18 ]

[ メッセージ編集済み 編集者: 社内竜王 編集日時 2006-12-14 10:18 ]

[ メッセージ編集済み 編集者: 社内竜王 編集日時 2006-12-14 10:59 ]

[ メッセージ編集済み 編集者: 社内竜王 編集日時 2006-12-14 11:00 ]

[ メッセージ編集済み 編集者: 社内竜王 編集日時 2006-12-14 11:01 ]

[ メッセージ編集済み 編集者: 社内竜王 編集日時 2006-12-14 11:10 ]

[ メッセージ編集済み 編集者: 社内竜王 編集日時 2006-12-14 11:10 ]

[ メッセージ編集済み 編集者: 社内竜王 編集日時 2006-12-14 11:11 ]

[ メッセージ編集済み 編集者: 社内竜王 編集日時 2006-12-14 11:11 ]

[ メッセージ編集済み 編集者: 社内竜王 編集日時 2006-12-14 11:13 ]
Edosson
ぬし
会議室デビュー日: 2004/04/30
投稿数: 675
投稿日時: 2006-12-14 10:47
Strutsのことはよう知らんのですが。
引用:

社内竜王さんの書き込み (2006-12-14 10:16) より:

クライアントでのコードでは、
-db2jcc.jar db2jcc_licence_cu.jar db2jcc_licence_cisuz.jar


クライアントって、この場合、なんですか?
コード? コマンドラインからJavaを叩くときのオプションにも見えますが、
それにしてはオプション名もデリミタも見えないし・・・。

クライアントでなくてサーバーだったら、
例えばTomcatならば、ライブラリは所定の場所に格納せねばなりません。
どこに格納するのかは、まずは自分で調べてみましょう。
引用:

業務ロジックでは


業務ロジックって、この場合はWebサーバーで動作しているプログラムですよね。
上記のクライアント云々とどう結びつくのかわからんのですが。
Edosson
ぬし
会議室デビュー日: 2004/04/30
投稿数: 675
投稿日時: 2006-12-14 13:17
ちょっとのぞいてみたら、引用元が修正されている?
いや〜な予感がしたんですが、やっぱり的中か。
しかも、隠しただけで解決してないし。
たぶん、「部屋を片づける」と「見えないところに隠す」の区別も付けられないんだろう。

あのね、「Q.『高い』の反対語は?」って問いに
「高くない」って回答しても、○はもらえないよ。

まったく、甲斐のない・・・。
このBBSの敷居が、初心者にはちょっと高いとしても、
その原因の、少なくとも半分は、こういう輩のせいだと思う。
Edosson
ぬし
会議室デビュー日: 2004/04/30
投稿数: 675
投稿日時: 2006-12-14 13:25
引用:

社内竜王さんの書き込み (2006-12-14 10:16) より:

チェックするべき点や
解決策についてご存知の方がいらっしゃいましたら
どうか宜しくお願いします。


投稿された、チェックするべき点をスルーしといてなにをほざくか。

私が手元で行っていることは完全無欠であって、チェックするべき事項などありません。
一発で解決できる方法だけを教えてください。

って書き換えてください。
uk
ぬし
会議室デビュー日: 2003/05/20
投稿数: 1155
お住まい・勤務地: 東京都
投稿日時: 2006-12-14 15:29
どうやらStrutsを使っているらしいことはわかりますが、それ以外の環境が書いていないし、

引用:

-db2jcc.jar db2jcc_licence_cu.jar db2jcc_licence_cisuz.jar
をクラスパスに指定。


というのが具体的に何をしたのかわからないのですが、要するにクラスを参照できない
状態なので、そのクラスパスに指定、というのが間違っているのでしょう。Struts
ならWebアプリケーションでしょうから、WEB-INF/libにそれらのjarファイルを入れて
おけばいいのでは?
1

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