灵魂-放水

为学日益,为道日损。

BlogJava 首页 新随笔 联系 聚合 管理
  296 Posts :: 10 Stories :: 274 Comments :: 0 Trackbacks

一、Tomcat5.5.7+SQL Server2000
1、把数据库JDBC驱动(msutil.jar、mssqlserver.jar、msbase.jar)拷贝到%TOMCAT_HOME%/common/lib和% TOMCAT_HOME%/webapps/yourweb/WEB-INF/lib下。并把tools.jar(可选)、commons-collections-2.1.jar、commons-dbcp-1.2.1.jar、commons-logging-api-1.0.2.jar、commons-pool-1.3.jar拷到%TOMCAT_HOME%/common/lib目录下。
2、修改%TOMCAT_HOME%/conf/server.xml文件,在  <GlobalNamingResources></GlobalNamingResources>之间
添加以下内容:

 <!-- Global JNDI resources -->
  <GlobalNamingResources>
 <Resource      name="jdbc/MSSQLDS"      type="javax.sql.DataSource"      password="sa"      driverClassName="com.microsoft.jdbc.sqlserver.SQLServerDriver"      maxIdle="30"      maxWait="5000"      username="sa"      url="jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=SuperDB"      maxActive="30"/>

    <!-- Test entry for demonstration purposes -->
    <Environment name="simpleValue" type="java.lang.Integer" value="30"/>

    <!-- Editable user database that can also be used by
         UserDatabaseRealm to authenticate users -->
    <Resource name="UserDatabase" auth="Container"
              type="org.apache.catalina.UserDatabase"
       description="User database that can be updated and saved"
           factory="org.apache.catalina.users.MemoryUserDatabaseFactory"
          pathname="conf/tomcat-users.xml" />

  </GlobalNamingResources>

注:maxActive指定数据库连接池中处于活动状态的数据库连接最大数目,0表示不受限制;maxIdle:指定数据库连接池中处于空闲状态的数据库连接的最大数目,0表示不受限制;maxWait指定数据库连接池中的数据库连接处于空闲状态的最长时间(单位为毫秒),超过这一事件,将会抛出异常。-1表示可以无限期等待;auth:指定管理ResourceManager,由两个可选值:ContainerApplicationContainer表示由容器来创建和管理ResourceApplication表示由WEB应用来创建和管理Resource。如果在web application deployment descriptor中使用<resource-ref>,这个属性是必需的,如果使用<resource-env-ref>,这个属性是可选的。



3、在%TOMCAT_HOME%/conf/Catalina/localhost下新建一个与你web文件夹同名的xml文件(KuaiBaoWeb.war.xml)
这一步非常重要,如果没有这步就会出错,会出现错误:

Database init error:org.apache.tomcat.dbcp.dbcp.SQLNestedException: Cannot create JDBC driver of class '' for connect URL 'null'

在文件中内容如下:

<?xml version="1.0" encoding="UTF-8"?>
<Context> 
  <Resource      name="jdbc/MSSQLDS"      type="javax.sql.DataSource"      password="sa"      driverClassName="com.microsoft.jdbc.sqlserver.SQLServerDriver"      maxIdle="30"      maxWait="5000"      username="sa"      url="jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=SuperDB"      maxActive="30"/>
</Context>

可以看出,就是在元素<Content>里加入第2步同样的内容,根据个人情况做相应修改。
4、修改%TOMCAT_HOME%/webapps/yourweb/WEB-INF下的web.xml文件,在<web-app></web-app>之间添加以下内容:
  <resource-ref>
    <res-ref-name>jdbc/MSSQLDS</res-ref-name>
    <res-type>javax.sql.DataSource</res-type>
    <res-auth>Container</res-auth>
  </resource-ref>
jdbc/MSSQLDS为前面定义的JNDI名字。

相应的获取JNDI的代码:
......
Context initCtx=new InitialContext();
                
DataSource ds=(DataSource)initCtx.lookup("java:comp/env/jdbc/MSSQLDS")
.......

到此为止,数据源配置完成。

二、Jboss3.2.8+SQL Server2000

1、把数据库JDBC驱动(msutil.jar、mssqlserver.jar、msbase.jar)拷贝到jboss-3.2.8.SP1\server ..\lib目录下。
2、修改mssql-ds.xml文件,如下:

<?xml version="1.0" encoding="UTF-8"?>
<datasources>
  <local-tx-datasource>
    <jndi-name>MSSQLDS</jndi-name>
    <connection-url>jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=SuperDB</connection-url>
    <driver-class>com.microsoft.jdbc.sqlserver.SQLServerDriver</driver-class>
    <user-name>sa</user-name>
    <password>sa</password>
    <connection-property name="char.encoding">UTF-8</connection-property>
    <min-pool-size>30</min-pool-size>
    <max-pool-size>100</max-pool-size>
    <blocking-timeout-millis>5000</blocking-timeout-millis>
    <idle-timeout-minutes>5</idle-timeout-minutes>
  </local-tx-datasource>
</datasources>
获取JNDI代码:

 ctx = new InitialContext();
    ds = (DataSource) ctx.lookup("java:/MSSQLDS");
      conn = ds.getConnection();

数据源配置完成。注:JBOSS4.0下,配置多数据源比JBOSS3要容易。

posted on 2006-12-25 19:33 放水老倌 阅读(946) 评论(0)  编辑  收藏 所属分类: J2EE

只有注册用户登录后才能发表评论。


网站导航: