下面是我配置连接池的步骤和代码,
大家帮忙看看是哪里出的错啊!?1.运行tomcat进入tomcat administrator设置datasources,生成server.xml如下:
===========================================================
<?xml version='1.0' encoding='utf-8'?>
<Server>
<Listener className="org.apache.catalina.mbeans.ServerLifecycleListener"/>
<Listener className="org.apache.catalina.mbeans.GlobalResourcesLifecycleListener"/>
<GlobalNamingResources>
<Environment name="simpleValue" type="java.lang.Integer" value="30"/>
<Resource auth="Container" description="User database that can be updated and saved" name="UserDatabase" type="org.apache.catalina.UserDatabase"/>
<Resource name="YJJDataSources" type="javax.sql.DataSource"/>
<ResourceParams name="UserDatabase">
<parameter>
<name>factory</name>
<value>org.apache.catalina.users.MemoryUserDatabaseFactory</value>
</parameter>
<parameter>
<name>pathname</name>
<value>conf/tomcat-users.xml</value>
</parameter>
</ResourceParams>
<ResourceParams name="YJJDataSources">//这是数据源名称
<parameter>
<name>maxWait</name>
<value>5000</value>
</parameter>
<parameter>
<name>maxActive</name>
<value>40</value>
</parameter>
<parameter>
<name>password</name>
<value>***</value>//***为数据库密码
</parameter>
<parameter>
<name>url</name>
<value>jdbc:microsoft:sqlserver://127.0.0.1:1433;DatabaseName=***</value>//***为我的数据库名
</parameter>
<parameter>
<name>driverClassName</name>
<value>com.microsoft.jdbc.sqlserver.SQLServerDriver</value>
</parameter>
<parameter>
<name>maxIdle</name>
<value>20</value>
</parameter>
<parameter>
<name>username</name>
<value>sa</value>
</parameter>
</ResourceParams>
</GlobalNamingResources>
<Service name="Catalina">
<Connector acceptCount="100" connectionTimeout="20000" disableUploadTimeout="true" port="9000" redirectPort="8443" maxSpareThreads="75" maxThreads="150" minSpareThreads="25">
</Connector>
<Connector port="8009" protocol="AJP/1.3" protocolHandlerClassName="org.apache.jk.server.JkCoyoteHandler" redirectPort="8443">
</Connector>
<Engine defaultHost="localhost" name="Catalina">
<Host appBase="webapps" name="localhost">
<Logger className="org.apache.catalina.logger.FileLogger" prefix="localhost_log." suffix=".txt" timestamp="true"/>
</Host>
<Logger className="org.apache.catalina.logger.FileLogger" prefix="catalina_log." suffix=".txt" timestamp="true"/>
<Realm className="org.apache.catalina.realm.UserDatabaseRealm"/>
</Engine>
</Service>
</Server>
======================================================
2.在web.xml中加入如下代码:
-------------------------------------------------------
<resource-ref>
<description>DB Connection</description>
<res-ref-name>jdbc/YJJDataSources</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
</resource-ref>
--------------------------------------------------------
3.测试页面代码如下:
*******************************************************************
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%@ page import="java.sql.*"%>
<%@ page import="javax.naming.*"%>
<%@ page import="javax.sql.*"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD
HTML 4.01 Transitional//EN">
<html>
<head>
</head>
<body>
<%
Context initContext = new InitialContext();
Context envContext = (Context) initContext.lookup("java:/comp/env");
DataSource db = (DataSource)envContext.lookup("jdbc/YJJDataSources");
Connection conn = db.getConnection( );
Statement stmt = conn.createStatement();
ResultSet rs = stmt.executeQuery("SELECT * FROM news");
while(rs.next()){
out.print(rs.getString("Title")+" ");
}
rs.close();
stmt.close();
conn.close();
%>
</body>
</html>
********************************************************************
当我运行页面的时候,出现如下错误提示:HTTP Status 500 - --------------------------------------------------------------------------------type Exception reportmessage description The server encountered an internal error () that prevented it from fulfilling this request.exception javax.servlet.ServletException: Cannot create JDBC driver of class '' for connect URL 'null'
org.apache.jasper.runtime.PageContextImpl.doHandlePageException(PageContextImpl.java:825)
org.apache.jasper.runtime.PageContextImpl.handlePageException(PageContextImpl.java:758)
org.apache.jsp.test.testpool_jsp._jspService(testpool_jsp.java:78)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:94)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:324)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:292)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:236)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
root cause org.apache.commons.dbcp.SQLNestedException: Cannot create JDBC driver of class '' for connect URL 'null'
org.apache.commons.dbcp.BasicDataSource.createDataSource(BasicDataSource.java:780)
org.apache.commons.dbcp.BasicDataSource.getConnection(BasicDataSource.java:540)
org.apache.jsp.test.testpool_jsp._jspService(testpool_jsp.java:60)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:94)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:324)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:292)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:236)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
note The full stack trace of the root cause is available in the Apache Tomcat/5.0.28 logs.
--------------------------------------------------------------------------------Apache Tomcat/5.0.28
大家帮忙看看是哪里出的错啊!?1.运行tomcat进入tomcat administrator设置datasources,生成server.xml如下:
===========================================================
<?xml version='1.0' encoding='utf-8'?>
<Server>
<Listener className="org.apache.catalina.mbeans.ServerLifecycleListener"/>
<Listener className="org.apache.catalina.mbeans.GlobalResourcesLifecycleListener"/>
<GlobalNamingResources>
<Environment name="simpleValue" type="java.lang.Integer" value="30"/>
<Resource auth="Container" description="User database that can be updated and saved" name="UserDatabase" type="org.apache.catalina.UserDatabase"/>
<Resource name="YJJDataSources" type="javax.sql.DataSource"/>
<ResourceParams name="UserDatabase">
<parameter>
<name>factory</name>
<value>org.apache.catalina.users.MemoryUserDatabaseFactory</value>
</parameter>
<parameter>
<name>pathname</name>
<value>conf/tomcat-users.xml</value>
</parameter>
</ResourceParams>
<ResourceParams name="YJJDataSources">//这是数据源名称
<parameter>
<name>maxWait</name>
<value>5000</value>
</parameter>
<parameter>
<name>maxActive</name>
<value>40</value>
</parameter>
<parameter>
<name>password</name>
<value>***</value>//***为数据库密码
</parameter>
<parameter>
<name>url</name>
<value>jdbc:microsoft:sqlserver://127.0.0.1:1433;DatabaseName=***</value>//***为我的数据库名
</parameter>
<parameter>
<name>driverClassName</name>
<value>com.microsoft.jdbc.sqlserver.SQLServerDriver</value>
</parameter>
<parameter>
<name>maxIdle</name>
<value>20</value>
</parameter>
<parameter>
<name>username</name>
<value>sa</value>
</parameter>
</ResourceParams>
</GlobalNamingResources>
<Service name="Catalina">
<Connector acceptCount="100" connectionTimeout="20000" disableUploadTimeout="true" port="9000" redirectPort="8443" maxSpareThreads="75" maxThreads="150" minSpareThreads="25">
</Connector>
<Connector port="8009" protocol="AJP/1.3" protocolHandlerClassName="org.apache.jk.server.JkCoyoteHandler" redirectPort="8443">
</Connector>
<Engine defaultHost="localhost" name="Catalina">
<Host appBase="webapps" name="localhost">
<Logger className="org.apache.catalina.logger.FileLogger" prefix="localhost_log." suffix=".txt" timestamp="true"/>
</Host>
<Logger className="org.apache.catalina.logger.FileLogger" prefix="catalina_log." suffix=".txt" timestamp="true"/>
<Realm className="org.apache.catalina.realm.UserDatabaseRealm"/>
</Engine>
</Service>
</Server>
======================================================
2.在web.xml中加入如下代码:
-------------------------------------------------------
<resource-ref>
<description>DB Connection</description>
<res-ref-name>jdbc/YJJDataSources</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
</resource-ref>
--------------------------------------------------------
3.测试页面代码如下:
*******************************************************************
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%@ page import="java.sql.*"%>
<%@ page import="javax.naming.*"%>
<%@ page import="javax.sql.*"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD
HTML 4.01 Transitional//EN">
<html>
<head>
</head>
<body>
<%
Context initContext = new InitialContext();
Context envContext = (Context) initContext.lookup("java:/comp/env");
DataSource db = (DataSource)envContext.lookup("jdbc/YJJDataSources");
Connection conn = db.getConnection( );
Statement stmt = conn.createStatement();
ResultSet rs = stmt.executeQuery("SELECT * FROM news");
while(rs.next()){
out.print(rs.getString("Title")+" ");
}
rs.close();
stmt.close();
conn.close();
%>
</body>
</html>
********************************************************************
当我运行页面的时候,出现如下错误提示:HTTP Status 500 - --------------------------------------------------------------------------------type Exception reportmessage description The server encountered an internal error () that prevented it from fulfilling this request.exception javax.servlet.ServletException: Cannot create JDBC driver of class '' for connect URL 'null'
org.apache.jasper.runtime.PageContextImpl.doHandlePageException(PageContextImpl.java:825)
org.apache.jasper.runtime.PageContextImpl.handlePageException(PageContextImpl.java:758)
org.apache.jsp.test.testpool_jsp._jspService(testpool_jsp.java:78)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:94)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:324)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:292)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:236)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
root cause org.apache.commons.dbcp.SQLNestedException: Cannot create JDBC driver of class '' for connect URL 'null'
org.apache.commons.dbcp.BasicDataSource.createDataSource(BasicDataSource.java:780)
org.apache.commons.dbcp.BasicDataSource.getConnection(BasicDataSource.java:540)
org.apache.jsp.test.testpool_jsp._jspService(testpool_jsp.java:60)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:94)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:324)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:292)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:236)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
note The full stack trace of the root cause is available in the Apache Tomcat/5.0.28 logs.
--------------------------------------------------------------------------------Apache Tomcat/5.0.28
解决方案 »
- 一个简单的登陆问题?
- cookie 被复制,这样的安全问题怎么解决?
- webservice xfile客户端接收List的问题
- 为什么我在jsp页面运用了验证码的功能,页面每刷新一次,后台就会报下面的异常???
- 在jsp中怎样弹出“是否确定删除”的小窗口
- 这个搜索用jsp怎么做?整了几天还是有很多问题,谁有相似源码帮忙给我研究下,谢谢
- 急呀,真的很急!关于网站JDBC问题,大家帮忙!献上100分。
- 为什么tomcat找不到文件
- 我的MSSQL的日期在java中可以读取,可是在JSP中却不行!!!
- 关于乱码的问题(高分回报)
- WEB工程权限控制
- 新手求解,下拉列表绑定数据库中表的某一字段以及如何取下拉列表的值?在线等
是不是转义字符的问题?
// Obtain our environment naming context
Context initCtx = new InitialContext();
Context envCtx = (Context) initCtx.lookup("java:comp/env");// Look up our data source
DataSource ds = (DataSource)
envCtx.lookup("jdbc/EmployeeDB");// Allocate and use a connection from the pool
Connection conn = ds.getConnection();
... use this connection to access the database ...
conn.close();
***********************************************************
这是tomcat5.0官方网站上的示例代码
我按照它改成:
Context envCtx = (Context) initCtx.lookup("java:comp/env");
但是错误依然存在:
Cannot create JDBC driver of class '' for connect URL 'null'
<ResourceParams name="YJJDataSources">
我记得是这样写的: <ResourceParams name="jdbc/YJJDataSources">
而且我又重新配置了一下数据源,
自动生成的server.xml中确实为:
<ResourceParams name="YJJDataSources">
<Resource name="jdbc/SqlServermidp" auth="Container" type="javax.sql.DataSource"/>
<ResourceParams name="jdbc/SqlServermidp">
<parameter>
<name>factory</name>
<value>org.apache.commons.dbcp.BasicDataSourceFactory</value>
</parameter>
<parameter>
<name>driverClassName</name>
<value>com.microsoft.jdbc.sqlserver.SQLServerDriver</value>
</parameter>
<parameter>
<name>url</name>
<value>jdbc:microsoft:sqlserver://127.0.0.1:1433;
DatabaseName=midp</value>
</parameter>
<parameter>
<name>username</name>
<value>zdmilan</value>
</parameter>
<parameter>
<name>password</name>
<value>zd2511052</value>
</parameter>
<parameter>
<name>maxActive</name>
<value>20</value>
</parameter>
<parameter>
<name>maxIdle</name>
<value>10</value>
</parameter>
<parameter>
<name>maxWait</name>
<value>-1</value>
</parameter>
</ResourceParams>
</Context>//添加的内容结束</Host>3.在tomcat5.0\webapps\pool\WEB-INF\web.xml内容如下:<?xml version="1.0" encoding="ISO-8859-1"?><!DOCTYPE web-appPUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN""http://java.sun.com/dtd/web-app_2_3.dtd"><web-app><resource-ref>
<res-ref-name>
jdbc/SqlServermidp
</res-ref-name>
<res-type>
javax.sql.DataSource
</res-type>
<res-auth>
Container
</res-auth>
</resource-ref>
</web-app>4.tomcat5.0\webapps\pool\testpool.jsp 代码如下:<html><%@page contentType="text/html;charset=gb2312"%><%@ page import="java.sql.*"%>
<%@ page import="javax.sql.*"%>
<%@ page import="javax.naming.*"%>
<body>
this is a tomcat datasource pool example <br>
<%
try
{
DataSource ds = null;
InitialContext ctx=new InitialContext();
if(ctx==null)throw new Exception("没有匹配的上下文环境");ds=(DataSource)ctx.lookup("java:comp/env/jdbc/SqlServermidp");
if(ds==null)throw new Exception("没有匹配的数据库");
Connection conn = ds.getConnection();
Statement stmt = conn.createStatement();
String strSql = " select * from Person_Info";
ResultSet rs = stmt.executeQuery(strSql);while(rs.next())
{
out.println(rs.getString(1)); %><br>
<%
}
out.println("数据库连接成功!!!");
}
catch(Exception e)
{
out.println("somthing error!");
}finally
{
if(rs!=null)
rs.close();
if(stmt!=null)
stmt.close();
if(cnnn!=null)
cnn.close();
if(ctx!=null)
ctx.close();
}%>
</body>
</html>5.测试成功:http://localhost:8080/pool/testpool.jsp
************************************************************
HTTP Status 500 - --------------------------------------------------------------------------------type Exception reportmessage description The server encountered an internal error () that prevented it from fulfilling this request.exception org.apache.jasper.JasperException: Unable to compile class for JSPAn error occurred at line: 12 in the jsp file: /testpool.jsp
Generated servlet error:
C:\Tomcat 5.0\work\Catalina\localhost\_\org\apache\jsp\testpool_jsp.java:78: cannot find symbol
symbol : variable rs
location: class org.apache.jsp.testpool_jsp
if(rs!=null)
^
An error occurred at line: 12 in the jsp file: /testpool.jsp
Generated servlet error:
C:\Tomcat 5.0\work\Catalina\localhost\_\org\apache\jsp\testpool_jsp.java:79: cannot find symbol
symbol : variable rs
location: class org.apache.jsp.testpool_jsp
rs.close();
^
An error occurred at line: 12 in the jsp file: /testpool.jsp
Generated servlet error:
C:\Tomcat 5.0\work\Catalina\localhost\_\org\apache\jsp\testpool_jsp.java:80: cannot find symbol
symbol : variable stmt
location: class org.apache.jsp.testpool_jsp
if(stmt!=null)
^
An error occurred at line: 12 in the jsp file: /testpool.jsp
Generated servlet error:
C:\Tomcat 5.0\work\Catalina\localhost\_\org\apache\jsp\testpool_jsp.java:81: cannot find symbol
symbol : variable stmt
location: class org.apache.jsp.testpool_jsp
stmt.close();
^
An error occurred at line: 12 in the jsp file: /testpool.jsp
Generated servlet error:
C:\Tomcat 5.0\work\Catalina\localhost\_\org\apache\jsp\testpool_jsp.java:82: cannot find symbol
symbol : variable conn
location: class org.apache.jsp.testpool_jsp
if(conn!=null)
^
An error occurred at line: 12 in the jsp file: /testpool.jsp
Generated servlet error:
C:\Tomcat 5.0\work\Catalina\localhost\_\org\apache\jsp\testpool_jsp.java:83: cannot find symbol
symbol : variable conn
location: class org.apache.jsp.testpool_jsp
conn.close();
^
An error occurred at line: 12 in the jsp file: /testpool.jsp
Generated servlet error:
C:\Tomcat 5.0\work\Catalina\localhost\_\org\apache\jsp\testpool_jsp.java:84: cannot find symbol
symbol : variable ctx
location: class org.apache.jsp.testpool_jsp
if(ctx!=null)
^
An error occurred at line: 12 in the jsp file: /testpool.jsp
Generated servlet error:
C:\Tomcat 5.0\work\Catalina\localhost\_\org\apache\jsp\testpool_jsp.java:85: cannot find symbol
symbol : variable ctx
location: class org.apache.jsp.testpool_jsp
ctx.close();
^
8 errors org.apache.jasper.compiler.DefaultErrorHandler.javacError(DefaultErrorHandler.java:84)
org.apache.jasper.compiler.ErrorDispatcher.javacError(ErrorDispatcher.java:332)
org.apache.jasper.compiler.Compiler.generateClass(Compiler.java:412)
org.apache.jasper.compiler.Compiler.compile(Compiler.java:472)
org.apache.jasper.compiler.Compiler.compile(Compiler.java:451)
org.apache.jasper.compiler.Compiler.compile(Compiler.java:439)
org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:511)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:295)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:292)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:236)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
note The full stack trace of the root cause is available in the Apache Tomcat/5.0.28 logs.
--------------------------------------------------------------------------------Apache Tomcat/5.0.28
this is a tomcat datasource pool example
nspower
test
manager
aaaa
数据库连接成功!!!
所以没有找到!
最初的问题又出现了...
org.apache.commons.dbcp.SQLNestedException:
Cannot create JDBC driver of class '' for connect URL 'null'
但是结果是一样的**************************************************************
org.apache.commons.dbcp.SQLNestedException: Cannot create JDBC driver of class '
' for connect URL 'null'
at org.apache.commons.dbcp.BasicDataSource.createDataSource(BasicDataSou
rce.java:780)
at org.apache.commons.dbcp.BasicDataSource.getConnection(BasicDataSource
.java:540)
at org.apache.jsp.test.testpool_jsp._jspService(testpool_jsp.java:59)
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:2
92)
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(Appl
icationFilterChain.java:237)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationF
ilterChain.java:157)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperV
alve.java:214)
at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValv
eContext.java:104)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.jav
a:520)
at org.apache.catalina.core.StandardContextValve.invokeInternal(Standard
ContextValve.java:198)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextV
alve.java:152)
at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValv
eContext.java:104)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.jav
a:520)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.j
ava:137)
at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValv
eContext.java:104)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.j
ava:118)
at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValv
eContext.java:102)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.jav
a:520)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineVal
ve.java:109)
at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValv
eContext.java:104)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.jav
a:520)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:929) at org.apache.coyote.tomcat5.CoyoteAdapter.service(CoyoteAdapter.java:16
0)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java
:799)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.proce
ssConnection(Http11Protocol.java:705)
at org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java
:577)
at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadP
ool.java:683)
at java.lang.Thread.run(Thread.java:595)
Caused by: java.sql.SQLException: No suitable driver
at java.sql.DriverManager.getDriver(DriverManager.java:243)
at org.apache.commons.dbcp.BasicDataSource.createDataSource(BasicDataSou
rce.java:773)
... 32 more
localhost/admin/ 在ROOT下面有没有 URL,对不对?
我自己的密码忘记了,进不去!
****************************************************************
下面是我配置连接池的步骤和代码,
大家帮忙看看是哪里出的错啊!?1.运行tomcat进入tomcat administrator设置datasources,生成server.xml如下:
****************************************************************
这样设置完以后就出现了问题
后来就按照兄弟你的配置方法配了一下
但还是有这样一个问题
那么是不是说明问题出在tomcat之外的地方
比如环境变量,JDK...
注:我已经把mssql的三个jar文件加到classpath中了,我的jdk版本为1.5
CATALINA_HOME=d:\tomcat5
CLASSPATH=.;C:\j2sdk1.4.2_03\lib\dt.jar;C:\j2sdk1.4.2_03\lib\tools.jar;
JAVA_HOME=C:\j2sdk1.4.2_03
path= %path+%C:\j2sdk1.4.2_03\bin
现在url是空的,那么涉及到url的地方是不是就这一个地方:
**********************************************
server.xml中:
<name>driverClassName</name>
<value>com.microsoft.jdbc.sqlserver.SQLServerDriver</value>
</parameter>
<parameter>
<name>url</name>
<value>jdbc:microsoft:sqlserver://127.0.0.1:1433;
DatabaseName=***</value>
</parameter>
**********************************************
居然OK了,多谢 happy_day18(宇文梦飞) ,以及回复的朋友们
----------------------------------------------------------------------------
重新总结一下我的配置过程:
1.环境变量
(1).在classpath中添加mssql的驱动:msbase.jar,mssqlserver.jar,msutil.jar
(2).添加tomcat_home和java_home到环境变量中,变量值为各自的安装目录
(3).添加tools.jar,dt.jar到classpath中
2.tomcat5.0
(1).在conf/server.xml中添加连接池基本设置信息如下:
*********************************************************
<host>
//下面是添加的内容
<Context path="/pool" docBase="/pool" debug="0" reloadable="true" crossContext="true">//docBase为程序所在目录,可以是绝对路径,也可以是相对路径;path为虚拟服务器执行路径,(如 http://localhost:8080/pool)
<Resource name="SqlServermidp" auth="Container" type="javax.sql.DataSource"/>
<ResourceParams name="jdbc/SqlServermidp">
/**
*Resource name为数据源名称;ResourceParams name为“jdbc/“+”数据源名称”,
*也就是必须和下边的lookup内容一致
*Look up our data source
*DataSource ds = (DataSource)
*envCtx.lookup("jdbc/SqlServermidp");
*/
<parameter>
<name>factory</name>
<value>org.apache.commons.dbcp.BasicDataSourceFactory</value>
</parameter>
<parameter>
<name>driverClassName</name>
<value>com.microsoft.jdbc.sqlserver.SQLServerDriver</value>
</parameter>
<parameter>
<name>url</name>
<value>jdbc:microsoft:sqlserver://127.0.0.1:1433;
DatabaseName=midp</value>
</parameter>
<parameter>
<name>username</name>
<value>sa</value>
</parameter>
<parameter>
<name>password</name>
<value>***</value>
</parameter>
<parameter>
<name>maxActive</name>
<value>20</value>
</parameter>
<parameter>
<name>maxIdle</name>
<value>10</value>
</parameter>
<parameter>
<name>maxWait</name>
<value>-1</value>
</parameter>
</ResourceParams>
</Context>
//添加的内容结束
</Host>
(2).在WEB-INF/web.xml中添加如下绑定信息:
<web-app>
添加内容开始处
<resource-ref>
<description>DB Connection</description>
<res-ref-name>jdbc/YJJDataSources</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
</resource-ref>
添加内容结束
</web-app>
3.运行jsp页面,代码如下:
<html>
<%@ page contentType="text/html;charset=gb2312"%>
<%@ page import="java.sql.*"%>
<%@ page import="javax.naming.*"%>
<%@ page import="javax.sql.*"%>
<body>
this is a tomcat datasource pool example <br>
<%
Connection conn = null;
Statement stmt = null;
ResultSet rs = null;
InitialContext ctx = null;
try
{
DataSource ds = null;
ctx=new InitialContext();
if(ctx==null)throw new Exception("没有匹配的上下文环境");
ds=(DataSource)ctx.lookup("java:comp/env/jdbc/YJJDataSources");
if(ds==null)throw new Exception("没有匹配的数据库");
conn = ds.getConnection();
stmt = conn.createStatement();
String strSql = "select * from News";
rs = stmt.executeQuery(strSql);
while(rs.next())
{
out.println(rs.getString(1));
}
out.println("数据库连接成功!!!");
}catch(Exception e){
e.printStackTrace();
}finally{
if(rs!=null)
rs.close();
if(stmt!=null)
stmt.close();
if(conn!=null)
conn.close();
if(ctx!=null)
ctx.close();
}
%>
</body>
</html>显示内容为数据库连接成功即可!
安装的顺序:
1.系统补丁 SP4,数据库 JDBC for sqlserver SP3
2.安装JDK,
3.重启电脑,
4.安装TOMCAT 配置环境变量!
5.再重启电脑一次。
因为环境变量修改后,没重启或者说注销,那是没起作用的。因为你只是修改了,并没有加载到系统里去。