- PR -

Tomcat5.0.28 と SQLServer2000への接続

1
投稿者投稿内容
未記入
会議室デビュー日: 2005/03/01
投稿数: 8
投稿日時: 2005-03-07 10:13
はじめまして。
JSP+Servletを勉強し始めたものです。
1週間ほど悩んでいるのですが、解決できません・・・
どなたかお力をお貸しください!!

Tomcat5.0.28 と SQLServer2000への接続時
下記の「Cannot create JDBC driver of class」例外が発生します。
SQLServer JDBCドライバはインストールしてWEB-INF/lib下にjarファイルをコピーしました。


------エラーログ-----------------
2005-03-07 10:13:27 StandardWrapperValve[jsp]: サーブレット jsp のServlet.service()が例外を投げました
org.apache.commons.dbcp.SQLNestedException: Cannot create JDBC driver of class '' for connect URL 'null'
at org.apache.commons.dbcp.BasicDataSource.createDataSource(BasicDataSource.java:780)
at org.apache.commons.dbcp.BasicDataSource.getConnection(BasicDataSource.java:540)
at org.apache.jsp.jdbcTest_jsp._jspService(jdbcTest_jsp.java:75)
at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:94)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:324)
at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:292)
at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:236)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:237)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:157)
at common.EncodeUtil.doFilter(EncodeUtil.java:40)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:186)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:157)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:214)
at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
at org.apache.catalina.core.StandardContextValve.invokeInternal(StandardContextValve.java:198)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:152)
at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:137)
at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:118)
at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:102)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:929)
at org.apache.coyote.tomcat5.CoyoteAdapter.service(CoyoteAdapter.java:160)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:799)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:705)
at org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java:577)
at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:683)
at java.lang.Thread.run(Unknown Source)
Caused by: java.sql.SQLException: No suitable driver
at java.sql.DriverManager.getDriver(Unknown Source)
at org.apache.commons.dbcp.BasicDataSource.createDataSource(BasicDataSource.java:773)



---------JSP-----------------------------------------------
<%@ page import="javax.sql.*,javax.naming.*,java.sql.*" %>
<html>
<head>
<title>コネクション・プーリング</title>
</head>
<body>
<h1 style="color:white;background-color:#525D76;font-size:22px;">
コネクション・プーリング</h1>
<%
Context ctx=new InitialContext();
DataSource ds=(DataSource)ctx.lookup("java:comp/env/jdbc/TEST");
Connection db=ds.getConnection();
db.close();
%>
データベース接続に成功しました。
</body>


--------コンテキスト.xml-------------------------------------
<?xml version="1.0" encoding="UTF-8"?>
<Context displayName="TEST" docBase="TEST" path="/TEST" reloadable="true">


<!-- DB接続 コネクションプーリングの設定 -->
<Resource auth="Container" name="jdbc/TEST" type="javax.sql.DataSource"/>
<ResourceParams name="jdbc/xebec">
<parameter>
<name>factory</name>
<value>org.apache.commons.dbcp.BasicDataSourceFactory</value>
</parameter>
<parameter>
<name>maxActive</name>
<value>100</value>
</parameter>
<parameter>
<name>maxIdle</name>
<value>30</value>
</parameter>
<parameter>
<name>maxWait</name>
<value>10000</value>
</parameter>
<parameter>
<name>username</name>
<value>TEST_DB_USER</value>
</parameter>
<parameter>
<name>password</name>
<value>test</value>
</parameter>
<parameter>
<name>driverClassName</name>
<value>com.microsoft.jdbc.sqlserver.SQLServerDriver</value>
</parameter>
<parameter>
<name>url</name>
<value>jdbc:microsoft:sqlserver://192.168.1.15:1433;databasename=TEST_DB</value>
</parameter>

<parameter>
<name>validationQuery</name>
<value>SELECT * FROM MST01</value>
</parameter>
</ResourceParams>


</Context>

---------Web.xml-----------------------
<?xml version="1.0" encoding="UTF-8" ?>
<web-app xmlns="http://java.sun.com/xml/ns/j2ee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"
version="2.4">
<description>xebec</description>
<display-name>xebec</display-name>
<distributable />


<!--Filter Declaration-->
<filter>
<description>Filter to encode the Request Parameter</description>
<display-name>HTTP Request Encoder</display-name>
<filter-name>EncodeUtil</filter-name>
<filter-class>common.EncodeUtil</filter-class>
<init-param>
<description>Encoding Name</description>
<param-name>EncodeName</param-name>
<param-value>Windows-31J</param-value>
</init-param>
</filter>

<!--Filter Mapping-->
<filter-mapping>
<filter-name>EncodeUtil</filter-name>
<url-pattern>/*</url-pattern>
<dispatcher>REQUEST</dispatcher>
</filter-mapping>

<!--Servlet Declaration-->
<servlet>
<servlet-name>DefaultServlet</servlet-name>
<jsp-file>/default.jsp</jsp-file>
</servlet>

<!--Servlet Mapping-->
<servlet-mapping>
<servlet-name>DefaultServlet</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>



<!--Jsp File Configuration-->
<jsp-config>
<jsp-property-group>
<display-name>JSP Config</display-name>
<url-pattern>*.jsp</url-pattern>
<el-ignored>false</el-ignored>
<page-encoding>Windows-31J</page-encoding>
<scripting-invalid>false</scripting-invalid>
<include-prelude>/common.jsp</include-prelude>
</jsp-property-group>
</jsp-config>

<!--Resource Reference-->
<resource-ref>
<description>DB Connection</description>
<res-ref-name>jdbc/TEST</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
</resource-ref>

</web-app>
山本 裕介
ぬし
会議室デビュー日: 2003/05/22
投稿数: 2415
お住まい・勤務地: 恵比寿
投稿日時: 2005-03-07 11:07
過去事例ですが役に立つでしょうか?sutou さんがまとめてくださっていますね。
http://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=12867&forum=12&9
http://www.google.com/search?hl=ja&c2coff=1&client=safari&rls=ja-jp&q=%22Cannot+create+JDBC+driver+of+class%22+null+tomcat&btnG=Google+検索&lr=
aa
ぬし
会議室デビュー日: 2004/01/08
投稿数: 299
投稿日時: 2005-03-07 20:14
<ResourceParams name="jdbc/xebec">
未記入
会議室デビュー日: 2005/03/01
投稿数: 8
投稿日時: 2005-03-08 09:51
<ResourceParams name="jdbc/xebec">
すいません。
<ResourceParams name="jdbc/TEST">
でもやっぱり同じエラーがでます。
かつのり
ぬし
会議室デビュー日: 2004/03/18
投稿数: 2015
お住まい・勤務地: 札幌
投稿日時: 2005-03-08 10:07
インギさんが出してくれているURLを見ていますかね?
解決法が書いてあると思いますが。
私も以前同じ環境を構築した事がありますが、
悩んだ挙句、上記のURLに書かれている解決法で解決しましたよ。
未記入
会議室デビュー日: 2005/03/01
投稿数: 8
投稿日時: 2005-03-08 12:09
ありがとうございます。
参考URLを元に接続できました!! 
涙が出ました・・・

server.xmlの<DefaultContext>でDB接続パラメータ
コンテキスト.xmlに<ResourceLink />
web.xmlに<resource-ref>
を書くことで解決しました。

本当にありがとうございました!!

1

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