中国青基会
RSS
热门关键字:  None  linux+moodle安装  mac  rhel5  199
当前位置 : Nixsky>程序设计>Java>列表

Tomcat 6 通过 JDBC 连接池连接 SQL Server 2000 和 MySQL 5 的设置

来源:www.javadby.com 作者: 时间:2007-12-29 点击:

  Tomcat 文档及网上看到的说明都挺乱的,我经过几天尝试现在测试成功的Tomcat 6 设置分享一下.我的环境是:

  Windows XP SP2, Windows 2003 Server SP1

  Tomcat 6

  SQL Server 2000

  MySQL 5

  SQL Server 2000 连接池配置方法按顺序操作如下:1. 下载 SQL Server 2000 JDBC Driver 放在\Tomcat6\lib,我现在使用的是 msbase.jar、mssqlserver.jar、msutil.jar 这3个文件

  2. 在 Tomcat 6.0\webapps 下建立文件夹,比如 poolmssql

  3. poolmssql 文件夹内建 META-INF 夹,再建 context.xml 文件,内容:

  

  

    Resource 里 name的值"pool_mssql" 要用到后面测试页中

  driverClassName="com.microsoft.jdbc.sqlserver.SQLServerDriver" 这是连接 SQL Server 2000 用的驱动程序类名

  url 是数据库连接地址,一般形为 "jdbc:microsoft:sqlserver://数据库服务器:1433;DatabaseName=具体数据库名"

  username="someuser" password="somepassword" 这2处写实际的用户名和密码

  -->

  

maxActive="100" maxIdle="30" maxWait="10000"

driverClassName="com.microsoft.jdbc.sqlserver.SQLServerDriver"

url="jdbc:microsoft:sqlserver://xx.xx.xx.xx:1433;DatabaseName=somedb"

username="someuser" password="somepassword" />  maxActive="100" maxIdle="30" maxWait="10000"

  driverClassName="com.microsoft.jdbc.sqlserver.SQLServerDriver"

  url="jdbc:microsoft:sqlserver://xx.xx.xx.xx:1433;DatabaseName=somedb"

  username="someuser" password="somepassword" />

  4. 在 poolmssql 文件夹下建立测试程序页,内容:

  

  

  

  

  

  

  

  

  

  注意:(1)在 page 声明里要 import java.sql.*, javax.sql.*, javax.naming.* 这3个包,因为这时测试程序中声明对象实例要用到的。

  (2)page 声明里要contentType="text/html;charset=utf-8",网页 meta 里要 content="text/html; charset=utf-8",最后程序页本身还要存成 utf-8 编码的文本文件,这是我找到的最简单的保证非西文能正常显示的方法。

  MySQL 5 连接池配置方法与 MSSQL Server 大同小异:1. 下载 Connector/J 放在\Tomcat6\lib,我现在使用的是 mysql-connector-java-5.0.4-bin.jar

  2. 在 Tomcat 6.0\webapps 下建立文件夹,比如 mysql

  3. mysql 文件夹内建 META-INF 夹,再建 context.xml 文件,内容:

  

  

    driverClassName="com.mysql.jdbc.Driver" 这是连接 MySQL 用的驱动程序类名

  url 是数据库连接地址,一般形为 "jdbc:mysql://数据库服务器/具体数据库名",通常教程都会把 url 写成 jdbc:mysql://localhost:3306/dbname?autoReconnect=true,因为默认端口为3306,故可舍去

  username="someuser" password="somepassword" 这2处写实际的用户名和密码

  -->

  

maxActive="100" maxIdle="30" maxWait="10000"

driverClassName="com.mysql.jdbc.Driver"

url="jdbc:mysql://localhost:3306/dbname?autoReconnect=true"

username="someuser" password="somepassword" />  maxActive="100" maxIdle="30" maxWait="10000"

  driverClassName="com.mysql.jdbc.Driver"

  url="jdbc:mysql://localhost:3306/dbname?autoReconnect=true"

  username="someuser" password="somepassword" />

  

  4. 在 mysql 文件夹下建立测试程序页,内容:

  

  

  

  

  

  

  

  

  

  注意:(1)在 page 声明里要 import java.sql.*, javax.sql.*, javax.naming.* 这3个包,因为这时测试程序中声明对象实例要用到的。

  (2)以下的程序页文件本身要使用 utf-8 编码,而且 MySQL 数据库也需要先设置成 utf-8 编码的,具体方法这里不赘述,建议参见 http://unix-cd.com/vc/www/26/2007-07/6214.html

  我这里没有做以下工作,但仍能正常运行:

  设置系统的 CLASSPATH、JAVA_HOME、PATH 等参数

  安装 JDK

  把 aspectjrt.jar 放在 lib 下

  在 mssql 文件夹内建 WEB-INF 夹,再建 web.xml 文件

  常见报错:1. org.apache.tomcat.dbcp.dbcp.SQLNestedException: Cannot create PoolableConnectionFactory (Communications link failure due to underlying exception:

  ** BEGIN NESTED EXCEPTION **

  java.net.SocketException

  MESSAGE: java.net.ConnectException: Connection refused: connect

  字面意思是连接 mysql 服务被拒绝,通常是 MySQL 服务未启动造成的。

  2.

  java.sql.SQLException: [Microsoft][SQLServer 2000 Driver for JDBC]Error establishing socket.

  SQLServer 2000 服务未启动会报这样的错。

  3.type Status report

  message /poolmysql.jsp

  description The requested resource (/xxx.jsp) is not available.

  通常是context.xml 里 url 的值写得不对

  刚入门,很多还不很理解,如有不周,欢迎交流与指正!

最新评论共有 1 位网友发表了评论
发表评论
评论内容:不能超过250字,需审核,请自觉遵守互联网相关政策法规。
用户名: 密码:
匿名?
注册