- - PR -
JSTLのでDerby(Embedded)に接続できない
1
投稿者 | 投稿内容 |
---|---|
|
投稿日時: 2008-01-08 16:19
ぶちと申します。お世話になっております。
J2SE 1.5.0_13 (Mac OS X) + Tomcat 5.5.25 + JSTL 1.1.2 という環境で,Apache Derby 10.3.2.1の組み込み(Embedded)ドライバを使ったWebデータベースアプリケーションを作ろうとしていますが,<sql:setDataSource>でDerbyに接続する設定がうまくできずに困っております。 [やったこと] 1)アプリケーションフォルダを {TOMCAT_HOME}/webapps/derby/ とし,WEB-INF/lib の下に derby.jar と derbyLocale_ja_JP.jar を置いた。 2)DerbyにSQL文を投げるためのJSPファイル(sqltest.jsp)を1のフォルダに置いて,Tomcatを起動。 3)http://localhost:8080/derby/sqltest.jsp にアクセスして,SQL文を投入。 ※JSTLのcoreおよびsqlライブラリ自体は,別のデータベース(MySQL)で正常に利用できることを確認しています。 ※JNDIリソースによる接続設定(server.xmlへの記述)は使っていません(出来れば使いたくない)。 [状況] <sql:query>および<sql:update>でSQL文を実行させようとすると, javax.servlet.ServletException: DataSource が無効であるため、Connection を取得できません: "java.sql.SQLException: No suitable driver" という例外が発生する。 [sqltest.jspのソースコード] おおよそ下記の通りです。 ----- <body> <form action="sqltest.jsp" method="post"> <textarea name="sql"></textarea> <input type="submit" value="問い合わせ" onclick="this.name='query'"> <input type="submit" value="更新" onclick="this.name='update'"> </form> <hr> <sql:setDataSource var="ds" driver="org.apache.derby.jdbc.EmbeddedDriver" url="jdbc:derby:tcha238;create=true;upgrade=true" /> <%-- ↑derby.jarと同じ場所(WEB-INF/lib)にデータベースを作るつもりです --%> <c:catch var="exception"> <c:choose> <c:when test="${!empty param.query}"> <sql:query var="result" dataSource="${ds}"> ${param.sql} </sql:query> (resultの内容を表示する:ここでは省略) </c:when> <c:when test="${!empty param.update}"> <sql:update var="result" dataSource="${ds}"> ${param.sql} </sql:update> (resultの内容を表示する:ここでは省略) </c:when> </c:choose> </c:catch> <h3>${exception}</h3> </body> ----- setDataSourceのurlを絶対パスにする等いろいろ変えてみても変化がなく,困っています。 何かすごくしょーもないところで間違っているような気もするのですが…。 ちなみに,同じマシンで Eclipse3.2.2+WTP1.5 のデータベース・エクスプローラを使って上記のDerbyに接続してみたところ,きちんと接続できて,データベースの作成やSQL文の投入もうまくいきました。 どなたかご助言いただける方がいらっしゃったら,どうかお助けください。よろしくお願いいたします。 |
1