ログインしてさらにmixiを楽しもう

コメントを投稿して情報交換!
更新通知を受け取って、最新情報をゲット!

Java質問&情報提供サイトコミュのDJBCドライバのロードに失敗してしまいます。

  • mixiチェック
  • このエントリーをはてなブックマークに追加
いつもお世話になってます。
現在、JAVAでデータベースを扱うプログラムを作っているのですがエラーでつまづいてしまいました。

環境
OS:Win XP
JAVA:1.6.0_02
Tomcat 5.5
Eclipse 3.2.2
MySQL 5.1
JDBCドライバ:MySQL Connector/J 5.1.5

-----Planetarium.java-----
public class Planetarium extends ToyGraphics{
public static void main(String[] args) {
new Planetarium(2007,12,12,20,0,0,0,45,1.0);
}

AccessDB db=new AccessDB();

public Planetarium(int year,int month,int day,int hour,int min,int sec,double lng,double lat,double zoom){

/* 省略 */

createPlanets(date,lng,lat);

db.close();
/* 省略 */
}

  public void createStars(String[] get_data,double lng,double lat,int[] date){
     /* 省略 */

//DBへ登録
db.insert_data(name,get_data[1],get_data[2],get_data[3],get_data[4],x,y);

     /* 省略 */
  }

  /* 省略 */
}

------AccessDB.java-----
public class AccessDB extends javax.servlet.http.HttpServlet implements javax.servlet.Servlet {

Connection con=null;
PreparedStatement ps=null;

public AccessDB() {
super();
try{
//ドライバクラスをロード
Class.forName("com.mysql.jdbc.Driver");
//データベースへ接続
con=DriverManager.getConnection("jdbc:mysql://localhost/sample_planetDB","root","pass");

}catch(SQLException e){
e.printStackTrace();
}catch(ClassNotFoundException e){
e.printStackTrace();
}
}

public void insert_data(String n,String ra_hms,String dec_hms, String mag,String color,double x,double y){
/* 省略 */
}

/* 省略 */
public void close(){
try{
//close処理
if(ps!=null) ps.close();
if(con!=null) con.close();
}catch(SQLException e){
e.printStackTrace();
}
}
}

これだとちゃんと動いてくれるのですが
このPlanetarium.javaを

-----PlanetariumServlet.java-----
public class PlanetariumServlet extends javax.servlet.http.HttpServlet implements javax.servlet.Servlet {

public PlanetariumServlet() {
super();
}

protected void doGet(HttpServletRequest req, HttpServletResponse res) throws ServletException, IOException {
/* 省略 */

new Planetarium(year,month,day,hour,min,sec,lng,lat,zoom);

/* 省略 */
}
}

* year等にはhtmlから受け取った数字が入っています。

このようにすると
AccessDBのドライバクラスをロードするところで

java.lang.ClassNotFoundException: com.mysql.jdbc.Driver

が出てしまいます。
Planetariumから実行すれば問題なく動いてくれるので、環境変数の設定は出来ていると思います。
違いと言えばTomcatを起動しているかいないか、なのですが、何か気をつけることや
あるいはサーブレットを2つ使っているのがいけないとかあるのでしょうか…?

ClassNotFoundExceptionエラーの対処法は調べたのですが、どこもCLASSPATH設定のことしか書いてなくて質問させていただきました。
よろしくお願いします。

コメント(3)

>あひるさん
JDBC!ですね。DJ…。すみませんっ(^^;

>tmrさん
ご指摘していただいた通りでした!
WEB-INF/libに、mysql-connector-java-5.1.5-bin.jarをインポートしたら解決しました。

あひるさん、tmrさん、ありがとうございました!!

ログインすると、みんなのコメントがもっと見れるよ

mixiユーザー
ログインしてコメントしよう!

Java質問&情報提供サイト 更新情報

Java質問&情報提供サイトのメンバーはこんなコミュニティにも参加しています

星印の数は、共通して参加しているメンバーが多いほど増えます。

人気コミュニティランキング