说三道四技术文摘-感悟人生的经典句子
说三道四 > 文档快照

TOMCAT+SQLSERVER连接池配置问题~高分请教

编辑:说三道四文库 发布时间:2018-08-17 06:04
HTML文档下载 WORD文档下载 PDF文档下载
我已经配置了TOMCAT的SERVER.XML和WEB-INF/WEB.XML
具体的我觉得没配错~
SQLSERVER JDBC的三个JAR也放到COMMON/LIB下了~
不过在JSP中
    Context initCtx = new InitialContext();
    Context envCtx = (Context) initCtx.lookup("java:comp/env");
    ds = (DataSource)envCtx.lookup("jdbc/mydb");
是出现java.sql.SQLException: Cannot load JDBC driver class 'null'错误
我用的是WIN2000SERVER+TOMCAT4.1.12+JDK1.4.1+SQLSERVER2000,我在论坛也找了些文章,不过好象没解决这个问题.
SQLSERVER 提供的两个版本的JDBC都试了~不过也不行
SQL Server 2000. 
SQL Server 2000 with Service Pack 1

以下操作系统支持SQL Server 2000 JDBC Driver: 

Windows XP 
Windows 2000 with Service Pack 2 
AIX 
HP-UX 
Solaris 
Linux 

SQL Server 2000 JDBC Driver支持以下版本的JDK: 

JDK 1.1.8 
JDK 1.2 
JDK 1.3 

我想问这个是什么问题?和Service pack有关吗?和JDK版本有关吗?希望各位指点:)
你把sqlserver的三个jar文件放到你的工程的web-inf/lib目录下
然后再试试看!
java.sql.SQLException: Cannot load JDBC driver class 'null'错误
这个说明你的XML配置文件关于JDBC 数据源的部分有问题。
多谢~不过不行~已经排除缓存因素~
一开始说错了是
    Context initCtx = new InitialContext();
    Context envCtx = (Context) initCtx.lookup("java:comp/env");
    ds = (DataSource)envCtx.lookup("jdbc/mydb");

    conn = ds.getConnection();<==这句导致Cannot load JDBC driver class 'null'错误

请问luckyfanjian(luckyfan) 兄如何解决好?
to: javahui(阶级斗争要年年讲,月月讲,天天讲。) 兄,
下面的是主要的两个参数.我是这样配的.
<parameter>
  <name>driverClassName</name>
  <value>com.microsoft.jdbc.sqlserver.SQLServerDriver</value>
 </parameter>
 <parameter>
  <name>url</name>
  <value>jdbc:microsoft:sqlserver://172.16.12.5:1433;DatabaseName=csyl</value>
 </parameter>      

而我在外面写
Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver"); 
Connection conn = DriverManager.getConnection("jdbc:microsoft:sqlserver://172.16.12.5:1433;DatabaseName=csyl","sa","sa")
是可以取的连接的.
看看你的配置呢。如果你原来不用连接池时候能连接,那就是配置的问题了。
我的SERVER.XML配置如下
 <Context path="/cayl" docBase="D:\tomcat4\webapps\csyl" debug="0"
                 reloadable="true" crossContext="true" >
<Resource name="jdbc/mydb" auth="Container" type="javax.sql.DataSource"/>
 <ResourceParams name="jdbc/mydb">
 <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>sa</value>
 </parameter>
 <parameter>
  <name>password</name>
  <value>sa</value>
 </parameter>
 <parameter>
  <name>driverClassName</name>
  <value>com.microsoft.jdbc.sqlserver.SQLServerDriver</value>
 </parameter>
 <parameter>
  <name>url</name>
  <value>jdbc:microsoft:sqlserver://172.16.12.5:1433;DatabaseName=csyl</value>
 </parameter>      
 </ResourceParams>
</Context>

WEB.XML配置如下:
<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
    "http://java.sun.com/dtd/web-app_2_3.dtd">
<web-app>
 <display-name>My Web</display-name>
 <servlet-mapping>
  <servlet-name>invoker</servlet-name>
  <url-pattern>/servlet/*</url-pattern>
 </servlet-mapping>
 <resource-ref>
  <res-ref-name>jdbc/mydb</res-ref-name>
  <res-type>javax.sql.DataSource</res-type>
  <res-auth>Container</res-auth>
 </resource-ref>
</web-app>

JSP如下:
<%@ page contentType="text/html; charset=GBK" %>
<%@ page import="javax.naming.Context" %>
<%@ page import="javax.sql.DataSource"%>
<%@ page import="javax.naming.InitialContext"%>
<%@ page import="java.sql.*"%>

<%
  DataSource ds = null;
  Connection conn = null;
  try{
    Context initCtx = new InitialContext();
    Context envCtx = (Context) initCtx.lookup("java:comp/env");
    ds = (DataSource)envCtx.lookup("jdbc/mydb");

    conn = ds.getConnection();
    if(conn!=null)
        out.println("Connection is OK!");
    else
        out.println("Connection Failed!");
   }catch(Exception e){
      out.println(e.getMessage());
   }
%>


请各位指点~分数加到200了:)
把驱动放到share/lib,common/lib,web-inf/lib下,全放吧
to:jcreatorqijiashe(秋天的童话) 兄~
我个人认为不是这个问题,TOMCAT不是没找到JDBC类,而是不知道找那个类.
我觉得查找JNDI的时候根本就不是找com.microsoft.jdbc.sqlserver.SQLServerDriver类
而是找一个"空"类.不知道我的说法对不对?:)
我觉得还是没配置好或其它我不懂问题导致的~
你确定你的数访问数据库的类包放进去了嘛,
把你的配置文件贴出来看看。
java.sql.SQLException: Cannot load JDBC driver class 'null'错误
Context envCtx = (Context) initCtx.lookup("java:comp/env");
    ds = (DataSource)envCtx.lookup("jdbc/mydb");
这句不对,
ds=(DataSource)envCtx.lookup("java:comp/env/数据源的名");
这是一个成功的例子~
不过我觉得和我的例子好象没什么区别
http://www.csdn.net/develop/read_article.asp?id=16912
因为一部分代码是COPY过去的:)
to:guoxuezheng()兄~ 
实际效果是一样的.你的那种写法我也写过了:)
"数据源的名"==>就是jdbc/mydb
你的jdbc/mydb最好是换成一个字符串的比如mydbs等应该可以
to:guoxuezheng()兄~
改了~也不行~
WEB.XML配置里不对,你好像是JBOSS和TOMCAT的配置给写混了。
 <resource-ref>
  <res-ref-name>jdbc/mydb</res-ref-name>
  <res-type>javax.sql.DataSource</res-type>
  <res-auth>Container</res-auth>
 </resource-ref>这个可以不用

再有
javax.naming.Context context = new javax.naming.InitialContext();
ds=(DataSource)context .lookup("java:comp/env/数据源的名");

TOMCAT下前面得加“java:comp/env/”
jboss   "java:"
<Context path="/yceoffice" docBase="E:\DevWork\yceoffice\informationCenter\informationCenter" debug="0"
                 reloadable="true" crossContext="true">
   <Resource name="HitsecDb" auth="Container" type="javax.sql.DataSource"/>    
<ResourceParams name="HitsecDb"> 
     <parameter>
       <name>user</name>
       <value>hitsec</value>
     </parameter>
     <parameter>
       <name>password</name>
       <value>hit</value>
     </parameter>
     <parameter>
       <name>driverClassName</name>
       <value>sun.jdbc.odbc.JdbcOdbcDriver</value>
     </parameter> 
     <parameter>
       <name>driverName</name>
       <value>jdbc:odbc:hitsec_eoffice</value>
     </parameter> 
   </ResourceParams>
       </Context>

class
  public DBBean(){
    try {
      javax.naming.Context context = new javax.naming.InitialContext();
      ds = (DataSource) context.lookup("java:comp/env/HitsecDb");//for tomcat
      //conn = ds.getConnection();
    }
    catch (Exception ex) {
      System.out.println("ds:"+ex.toString());
    }
  }
I use JDBC:ODBC connection
TO:guoxuezheng()兄~
我也是看别人说要修改WEB.XML的.
我把原来的改成
    Context initCtx = new InitialContext();
  ds = (DataSource)initCtx.lookup(
      "java:comp/env/jdbc/mydbss");
还是不行:((
TO:guoxuezheng()兄~
如果我把conn = ds.getConnection();这句注释掉后不会出错~
好象是SQLSERVER特别多问题.我见到MYSQL\ORACLE\DB2\SYBASE的好像都没问题~
我试了,很奇怪也不行!
我用的是mssqlserver和com.jnetdirect.jsql.JSQLDriver,直接连都可以。

我的错误是:
javax.servlet.ServletException: Cannot create resource instance
at org.apache.jasper.runtime.PageContextImpl.handlePageException(PageContextImpl.java:536)
at org.apache.jsp.test_jsp._jspService(test_jsp.java:78)
at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:137)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:210)
at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:295)
at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:241)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:247)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:193)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:256)
at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
at org.apache.catalina.core.StandardContext.invoke(StandardContext.java:2415)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:180)
at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)
at org.apache.catalina.valves.ErrorDispatcherValve.invoke(ErrorDispatcherValve.java:171)
at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:641)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:172)
at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:641)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:174)
at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
at org.apache.coyote.tomcat4.CoyoteAdapter.service(CoyoteAdapter.java:223)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:594)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:392)
at org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java:565)
at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:619)
at java.lang.Thread.run(Thread.java:536)

肯定不是数据库的问题,因为我在我这里加了好多数据库连接,好几个服务一起进行也没有出现你说的问题。你还改什么别的地方了嘛?
TO:javahui(阶级斗争要年年讲,月月讲,天天讲。) 兄
你以前用其他数据库(+JDBC)行吗?会不会和JDK版本有关?我试一试1.3的


TO:guoxuezheng()兄~
不是数据库问题,不知道是不是和JDBCDRIVER有关呢?
你现在改成什么样了你再贴出来看看,你后面写的错是在哪报的错?
JDBCDRIVER嘛应该不会,JDK只要是1。3以上的就可以了
对了用连接的话你的类包有J2EE下的几个包嘛应该有要不会报错的。
自己没配好就是没配好,不要说版本问题,也不要说SQLServer的问题
还有两个文件你加了没?
commons-pool-1.0.1.jar
commons-dbcp-1.0.jar
TO:accp(只有在梦醒的时候才知道自己是做了一个梦)兄
我也不是说数据库有问题:)至于版本就不知道有没关了.
这两个JAR要加到那里?
在TOMCAT的common\lib下默认已经有~
我的最新的:
SERVER.XML==>
<Context path="/cayl" docBase="csyl" debug="0"
                 reloadable="true" crossContext="true" >
<Resource name="cayl" auth="Container" type="javax.sql.DataSource"/>
 <ResourceParams name="cayl">
 <parameter>
  <name>user</name>
  <value>sa</value>
 </parameter>
 <parameter>
  <name>password</name>
  <value>sa</value>
 </parameter>
 <parameter>
  <name>driverClassName</name>
  <value>com.microsoft.jdbc.sqlserver.SQLServerDriver</value>
 </parameter>
 <parameter>
  <name>driverClassName</name>
  <value>jdbc:microsoft:sqlserver://172.16.12.5:1433;DatabaseName=csyl;SelectMethod=CUrsor</value>
 </parameter>      
 </ResourceParams>
        </Context>

WEB.XML==>
 <resource-ref>
  <res-ref-name>cayl</res-ref-name>
  <res-type>javax.sql.DataSource</res-type>
  <res-auth>Container</res-auth>
 </resource-ref>

JSP==>
<%@ page contentType="text/html; charset=GBK" %>
<%@ page import="javax.naming.Context" %>
<%@ page import="javax.sql.DataSource"%>
<%@ page import="javax.naming.InitialContext"%>
<%@ page import="java.sql.*"%>
<%
  javax.sql.DataSource  ds = null;

  Connection conn = null;
  try{
 Context initCtx = new InitialContext(); 
  ds = (DataSource)initCtx.lookup("java:comp/env/cayl");
    conn = ds.getConnection();
    if(conn!=null)
        out.println("Connection is OK!");
    else
        out.println("Connection Failed!");
   }catch(Exception e){
      out.println("11dfeeeedddcc="+e.getMessage());
   }
%>

哎~想不到还会有这么麻烦~各位多指点吧~偶加到300分~

TOMCAT4.1.12默认不带的,你自己放的?反下有了就行
我仔细看了一下你贴的配置文件,没有错误(web.xml文件配不配无所谓),另外也就是
tomcat+jdk1.4+jdbc+sqlserver肯定可以配成功
剩下的也就是你的细心了,呵~
这个不对,要加上
 <parameter>
  <name>factory</name>
        <value>org.apache.commons.dbcp.BasicDataSourceFactory</value>
     </parameter>
to:accp(只有在梦醒的时候才知道自己是做了一个梦)
TOMCAT下有commons-dbcp.jar和commons-pool.jar,名称和你所说的不同
不知道是否一样?你有
commons-pool-1.0.1.jar
commons-dbcp-1.0.jar
的下载地址吗?

这个我大部分都测试时间都加了~
<parameter>
  <name>factory</name>
        <value>org.apache.commons.dbcp.BasicDataSourceFactory</value>
     </parameter>

我看到一些说在WEB.XML只配四个参数,在JSP调用JNDI的就行了~
偶也不明白为什么不行.偶记得以前(当时用TOMCAT4.0+JDK1.3好像配置SYBASE和SQLSERVER都好像没问题),所以才有点怀疑是版本问题,还是我的记忆力有点问题~
factory那个参数是必须要加的
你这个地方又改错了哟
 <parameter>
  <name>driverClassName</name>
  <value>jdbc:microsoft:sqlserver://172.16.12.5:1433;DatabaseName=csyl;SelectMethod=CUrsor</value>
 </parameter>   
你照着tomcat的帮助去配,应该没问题的~
唉,我当初是一次性成功,同情你...
:)
忘了说,就是那两个文件
经过测试~和JDK版本没有关系~
我正在试MYSQL+TOMCAT,好像也有问题~我要下班了~我今晚再测试一下,希望明天能各各位一个答案~今天暂时不结贴~
这样就行吧:

Context tx= new InitialContext();
DataSource ds = tx.lookup("java:comp/env/jdbc/mydb");
请问你的server.xml文件中<context></context>前后是否有<!--,-->,如有请去掉,然后重新启动tomcat后即可
晕死~我回家一测试就行了~原来是数据库登录问题和参数使用的问题~
以下是我的总结,希望对各位遇到同样问题的朋友有用:

问题:配置时出现Cannot load JDBC driver class 'null' (or Cannot create JDBC driver of class 'com.microsoft.jdbc.sqlserver.SQLServerDriver' for connect URL 'null' )

1.配置前需要把三个JAR放在TOMCAT可以找到的地方.
2.配置SERVER.XML文件,只需设置
-------------------------------------------------------------------------------
username(请不要用user,否则会出错java.sql.SQLException: [Microsoft][SQLServer 2000 Driver for JDBC][SQLServer]用户 '(null)' 登录失败。原因: 未与信任 SQL Server 连接相关,如果用户名写错,出现下面错误java.sql.SQLException: [Microsoft][SQLServer 2000 Driver for JDBC][SQLServer]用户 'sasdf' 登录失败。)==>数据库登录用户名
-------------------------------------------------------------------------------
password==>数据库登录用户对应的密码(java.sql.SQLException: [Microsoft][SQLServer 2000 Driver for JDBC][SQLServer]用户 'sa' 登录失败。 )
-------------------------------------------------------------------------------
driverClassName==>JDBC DRIVER(一般微软提供的com.microsoft.jdbc.sqlserver.SQLServerDriver)
-------------------------------------------------------------------------------
url==>数据库URL(请不要用driverName,Cannot create JDBC driver of class 'com.microsoft.jdbc.sqlserver.SQLServerDriver' for connect URL 'null' ,一般是:jdbc:microsoft:sqlserver://你数据库服务器IP:1433;DatabaseName=数据库名称)
-------------------------------------------------------------------------------
设置了上面的四个参数已基本可以,不过实际应用中最后多设置几个重要参数,例如factory\maxActive\maxIdle\maxWait等等.

3.Resource下的name="jdbc/mydb"其实设置的形式没多大关系,用jdbc/mydb或ddd都可以,只要使用的时候查找的JNDI名相同就行(否则会出错:Name ddd is not bound in this Context).

4.在JSP中用lookup("java:comp/env/jdbc/mydb")就行.

5.WEB.XML可以不配置,不过实际开发中最好配置一下(<==不是我说的)

6.SERVER.XML最好不要有中文注释.

过程基本完成,不过还有一个疑问,为什么差不多的配置居然报不同的错误,而两个目录下的文件一样的(我COPY过去的),具体配置如下:

第一个是cayl==>
<Context path="/cayl" docBase="csyl" debug="0" reloadable="true" crossContext="true" >
 <Resource name="jdbc/cayl" auth="Container" type="javax.sql.DataSource"/>
 <ResourceParams name="jdbc/cayl">
 <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>user</name>
  <value>administrator</value>
 </parameter>
 <parameter>
  <name>password</name>
  <value>lzb</value>
 </parameter>
 <parameter>
  <name>driverClassName</name>
  <value>com.microsoft.jdbc.sqlserver.SQLServerDriver</value>
 </parameter>
 <parameter>
  <name>driverName</name>
  <value>jdbc:microsoft:sqlserver://172.16.12.5:1433;DatabaseName=csyl</value>
 </parameter>      
 </ResourceParams>
        </Context>

第二个是myweb==>
 <Context path="/myweb" docBase="myweb" debug="0" reloadable="true" crossContext="true" >
 <Resource name="jdbc/mydb" auth="Container" type="javax.sql.DataSource"/>
 <ResourceParams name="jdbc/mydb">
 <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>user</name>
  <value>administrator</value>
 </parameter>
 <parameter>
  <name>password</name>
  <value>lzb</value>
 </parameter>
 <parameter>
  <name>driverClassName</name>
  <value>com.microsoft.jdbc.sqlserver.SQLServerDriver</value>
 </parameter>
 <parameter>
  <name>driverName</name>
  <value>jdbc:microsoft:sqlserver://172.16.12.5:1433;DatabaseName=csyl</value>
 </parameter>      
 </ResourceParams>
 </Context>

第二个我是COPY第一个的,只改了名称和Resource.name(各位可对比一下),为什么第一个错Cannot load JDBC driver class 'null'而第二个出Cannot create JDBC driver of class 'com.microsoft.jdbc.sqlserver.SQLServerDriver' for connect URL 'null' 错误,把它们的位置掉换也是一样.不知道是不是和TOMCAT有关?

算了,那个问题就不理了~在这里首先再次多谢各位的帮助,结贴了,300分~
想不到偶也有今天~减了300分,以后问问题的资本又少了~看来要多点来CSDN混点分才行:)
偶最近要搞一小系统,要用到JACOB+COM(DLL)或JNI+DLL,如果有朋友也要搞相关的可以共同研究一下(当然是偶向大家请教了:)),其它基础问题也可以,偶经常在CJW混,用户名也是makepage79,QQ是76662116.
请问怎样才可以把分加到300啊?我加的时候总是说不能超过100~晕~
server.xml是这样的:
       <!-- Tomcat Root Context -->                    
          <Context path="/test" docBase="test" debug="0">                      
           <Resource name="jdbc/sqlServerDB" auth="Container"  type="javax.sql.DataSource"/>                             
            <ResourceParams name="jdbc/sqlServerDB">                             
            <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://192.168.0.9:1433;DatabaseName=ehomework</value>
           </parameter>                             
            <parameter>                                   
          <name>username</name>                                   
          <value>sa</value>                            
            </parameter>                             
            <parameter>                                    
          <name>password</name>                                    
          <value>sa</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>
web.xml是这样的:
<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE web-app
    PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
    "http://java.sun.com/dtd/web-app_2_3.dtd">
<web-app>
    <display-name>Tomcat Examples</display-name>
    <description>
      Tomcat Example servlets and JSP pages.
    </description>
    <servlet-mapping>
        <servlet-name>invoker</servlet-name>
        <url-pattern>/servlet/*</url-pattern>
    </servlet-mapping>    
    <resource-ref>
                <description>SQLSERVER Datasource example</description>
                <res-ref-name>jdbc/sqlServerDB</res-ref-name>
                <res-type>javax.sql.DataSource</res-type>
                <res-auth>Container</res-auth>
         </resource-ref>
</web-app>
程序是放在webapps/test目录下:
Context initCtx = new InitialContext();
Context ctx = (Context) initCtx.lookup("java:comp/env");
//获取连接池对象
Object obj = (Object) ctx.lookup("jdbc/sqlServerDB");
//类型转换
javax.sql.DataSource ds = (javax.sql.DataSource)obj;
Connection conn = ds.getConnection();
Statement stmt = conn.createStatement();
String sqlstr="select * from usertable";
ResultSet rs=stmt.executeQuery(sqlstr);
if(rs.next()){
out.print(rs.getString(1));
out.print(rs.getString(2));
}
}catch(Exception ex){
System.out.println(ex.getMessage());
}
怎样才可以加分到300啊?是不是要另开一贴啊?
备案号:鲁ICP备13029499号-2 说三道四 www.s3d4.cn 说三道四技术文摘