- - PR -
EclipseでDB接続について
1
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 2006-11-14 10:19
EclipseもJavaも初心者のギンです。
私の環境は Windows xp pro IE6 Eclipse 3.02 Tomcat 5.5 jdk1.5.0_03 使用DBは『基礎からのサーブレット』についてきたHSQLDBです。 はじめに、DBに接続するクラスを作りました。 そのクラスを使ってDBに接続して、テーブルから持ってきた適当な値をログに出力することは出来ました。 次に私がやろうとしていたことは、サーブレットから接続して値を取得して、画面へ表示するということでした。 それをやる際、DB接続する部分でExceptionが走り、落ちてしまいます。 java.lang.ClassNotFoundException: org.hsqldb.jdbcDriver at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1332) at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1181) at java.lang.ClassLoader.loadClassInternal(Unknown Source) at java.lang.Class.forName0(Native Method) at java.lang.Class.forName(Unknown Source) at gin.DBManager.getConnection(DBManager.java:13) at gin.selectServlet.doGet(selectServlet.java:29) at javax.servlet.http.HttpServlet.service(HttpServlet.java:689) at javax.servlet.http.HttpServlet.service(HttpServlet.java:802) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148) at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:856) at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:744) at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:527) at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:80) at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684) at java.lang.Thread.run(Unknown Source) ↑がその時出力されたExceptionです。 私の打ったコードがだめなのかと思ったので、『基礎からのサーブレット』に載っていたソースを丸々打って試してみました。 ---------------------------------- package gin; import java.io.IOException; import java.io.PrintWriter; import java.sql.Connection; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; public class selectServlet extends HttpServlet{ public void doGet(HttpServletRequest request,HttpServletResponse response)throws ServletException,IOException{ response.setContentType("text/plan;charset; charset=Shift-JIS"); PrintWriter out = response.getWriter(); String sql = "select * from account"; Connection con = null; Statement smt = null; try{ con = DBManager.getConnection(); smt = con.createStatement(); ResultSet rs = smt.executeQuery(sql); while(rs.next()){ out.println( "ID="+rs.getInt("ID") +",name=" + rs.getString("name") +",pass=" + rs.getString("pass") ); } } catch(SQLException e){ throw new ServletException(e); } finally{ if(smt != null){ try{smt.close();}catch(SQLException ignore){} } if(con != null){ try{con.close();}catch(SQLException ignore){} } } } } ------------------------ これだとエラーが出ていたので catch (Exception e) {e.printStackTrace();} Eclipseで自動作成されたcatchを追加して実行してみました。 それでも、同じExceptionが走ります。 長くなってしまいましたが、何が原因なのか私にはわからないので、教えていただけると幸いです。 | ||||
|
投稿日時: 2006-11-14 10:30
JDBCのクラスが見つからないという例外です。 HSQLDBのjarファイルをWEB-INF/libに置いてあれば通常は大丈夫なはず。 | ||||
|
投稿日時: 2006-11-14 10:42
nagiseさん、本当にありがとうございます。
無事、接続できました。 |
1