Cannot create PoolableConnectionFactory ([Microsoft][SQLServer 2000 Driver for JDBC]Error establishing socket.)错误
来源:互联网 发布:淘宝老客户管理软件 编辑:程序博客网 时间:2024/05/21 06:39
Eclipse下配置及使用Tomcat 6.0数据库连接池连接sqlserver2000
前提假设Eclipse已经设置成功,Tomcat插件也设置成功。
1.由于tomcat6运行web应用时是在eclipse的workspace下建立一个server工程,而不是把web工程拷贝到tomcat路径下运行,所以在eclipse运行tomcat、使用它的连接池需要更改的是eclipse的workspace下server工程里面的server.xml配置,将来发布后再更改tomcat安装路径下conf下的server.xml。
在server.xml的host下加入:
此步骤可以用如下方法替代,在web工程的webcontent/web-inf目录下建立context.xml文件,这样避免两次去更改server.xml配置,也可使不同工程使用不同context配置,这是tomcat6提倡的方法,内容如下:
2.在webapps/项目名/WEB-INF中的web.xml中之前增加以下配置:
3.把以下几个.jar文件复制到tomcat安装目录下的lib文件夹中
commons-collections-3.1.jar
commons-dbcp-1.2.1.jar
commons-pool-1.2.jar
msutil.jar
msbase.jar
mssqlserver.jar
4.关键一步。确认sqlserver2000可以远程连接,这除了开放1433端口外还要,升级数据库到sp3或者sp4,否则连接会发出SQLNestedException: Cannot create PoolableConnectionFactory ([Microsoft][SQLServer 2000 Driver for JDBC]Error establishing socket错误。
5.编写java类,用于返回connection对象。
6.测试。
jsp文件内容:(注意不能用main函数测试,这样就脱离了Tomcat环境,只是一个java 应用,不可能使用tomcat连接池方法)
1.由于tomcat6运行web应用时是在eclipse的workspace下建立一个server工程,而不是把web工程拷贝到tomcat路径下运行,所以在eclipse运行tomcat、使用它的连接池需要更改的是eclipse的workspace下server工程里面的server.xml配置,将来发布后再更改tomcat安装路径下conf下的server.xml。
在server.xml的host下加入:
<Context docBase="MyStruts" path="/MyStruts" reloadable="true">
<Resource name="jdbc/DBUtil" auth="Container" type="javax.sql.DataSource"
maxActive="100" maxIdle="30" maxWait="10000"
username="sa" password="1234" driverClassName="com.microsoft.jdbc.sqlserver.SQLServerDriver"
url="jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=JiLv" />
</Context>
其中,DBUtil任意,将来和下一步的web.xml里名字对应即可,url="jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=JiLv"按情况填写。<Resource name="jdbc/DBUtil" auth="Container" type="javax.sql.DataSource"
maxActive="100" maxIdle="30" maxWait="10000"
username="sa" password="1234" driverClassName="com.microsoft.jdbc.sqlserver.SQLServerDriver"
url="jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=JiLv" />
</Context>
此步骤可以用如下方法替代,在web工程的webcontent/web-inf目录下建立context.xml文件,这样避免两次去更改server.xml配置,也可使不同工程使用不同context配置,这是tomcat6提倡的方法,内容如下:
<Context docBase="MyStruts" path="/MyStruts" reloadable="true">
<WatchedResource>WEB-INF/web.xml</WatchedResource>
<Resource name="jdbc/DBUtil" auth="Container" type="javax.sql.DataSource"
maxActive="100" maxIdle="30" maxWait="10000"
username="sa" password="1234" driverClassName="com.microsoft.jdbc.sqlserver.SQLServerDriver"
url="jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=JiLv" />
</Context>
<WatchedResource>WEB-INF/web.xml</WatchedResource>
<Resource name="jdbc/DBUtil" auth="Container" type="javax.sql.DataSource"
maxActive="100" maxIdle="30" maxWait="10000"
username="sa" password="1234" driverClassName="com.microsoft.jdbc.sqlserver.SQLServerDriver"
url="jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=JiLv" />
</Context>
2.在webapps/项目名/WEB-INF中的web.xml中之前增加以下配置:
<resource-ref>
<description>SQL Server Datasource</description>
<res-ref-name>jdbc/DBUtil</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
</resource-ref>
<description>SQL Server Datasource</description>
<res-ref-name>jdbc/DBUtil</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
</resource-ref>
3.把以下几个.jar文件复制到tomcat安装目录下的lib文件夹中
commons-collections-3.1.jar
commons-dbcp-1.2.1.jar
commons-pool-1.2.jar
msutil.jar
msbase.jar
mssqlserver.jar
4.关键一步。确认sqlserver2000可以远程连接,这除了开放1433端口外还要,升级数据库到sp3或者sp4,否则连接会发出SQLNestedException: Cannot create PoolableConnectionFactory ([Microsoft][SQLServer 2000 Driver for JDBC]Error establishing socket错误。
5.编写java类,用于返回connection对象。
package com.lyb;
import java.sql.Connection;
import javax.naming.Context;
import javax.naming.InitialContext;
import javax.sql.DataSource;
public class DBUtil {
public static Connection getConnection() {
try {
Context initContext = new InitialContext();
if (initContext == null)
throw new Exception("No Context");
Context envContext = (Context) initContext.lookup("java:/comp/env");
DataSource ds = (DataSource) envContext.lookup("jdbc/DBUtil");
if (ds != null) {
Connection conn = ds.getConnection();
if (conn != null) {
return conn;
}
}
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
}
import java.sql.Connection;
import javax.naming.Context;
import javax.naming.InitialContext;
import javax.sql.DataSource;
public class DBUtil {
public static Connection getConnection() {
try {
Context initContext = new InitialContext();
if (initContext == null)
throw new Exception("No Context");
Context envContext = (Context) initContext.lookup("java:/comp/env");
DataSource ds = (DataSource) envContext.lookup("jdbc/DBUtil");
if (ds != null) {
Connection conn = ds.getConnection();
if (conn != null) {
return conn;
}
}
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
}
6.测试。
jsp文件内容:(注意不能用main函数测试,这样就脱离了Tomcat环境,只是一个java 应用,不可能使用tomcat连接池方法)
<%@ page contentType="text/html;charset=gb2312"%>
<%@ page import="java.sql.*"%>
<%@ page import="javax.sql.*"%>
<%@ page import="javax.naming.*"%>
<%@ page import="com.lyb.*"%>
<HTML>
<HEAD>
<TITLE>JSP测试页面</TITLE>
</HEAD>
<BODY>
<%
Connection conn = DBUtil.getConnection();
Statement st = conn.createStatement();
String sql = "select * from goods";
ResultSet rs = st.executeQuery(sql);
while (rs.next()) {
%>
第一个字段内容为:<%=rs.getString(1)%>
第二个字段内容为:<%=rs.getString(2)%>
<br>
<%
}
%>
<%
out.print("使用jdbc驱动操作数据库操作成功");
%>
<%
rs.close();
st.close();
conn.close();
%>
</BODY>
</HTML>
<%@ page import="java.sql.*"%>
<%@ page import="javax.sql.*"%>
<%@ page import="javax.naming.*"%>
<%@ page import="com.lyb.*"%>
<HTML>
<HEAD>
<TITLE>JSP测试页面</TITLE>
</HEAD>
<BODY>
<%
Connection conn = DBUtil.getConnection();
Statement st = conn.createStatement();
String sql = "select * from goods";
ResultSet rs = st.executeQuery(sql);
while (rs.next()) {
%>
第一个字段内容为:<%=rs.getString(1)%>
第二个字段内容为:<%=rs.getString(2)%>
<br>
<%
}
%>
<%
out.print("使用jdbc驱动操作数据库操作成功");
%>
<%
rs.close();
st.close();
conn.close();
%>
</BODY>
</HTML>
这篇说明是来自:http://skywind.suprglu.com/
主要是数据库的升级问题.
- Cannot create PoolableConnectionFactory ([Microsoft][SQLServer 2000 Driver for JDBC]Error establishing socket.)错误
- [Microsoft][SQLServer 2000 Driver for JDBC]Error establishing socket 错误
- Cannot create PoolableConnectionFactory ([Microsoft][SQLServer 2000 Driver for JDBC]Error establishi
- [Microsoft][SQLServer 2000 Driver for JDBC]Error establishing socket
- Microsoft][SQLServer 2000 Driver for JDBC]Error establishing socket
- [Microsoft][SQLServer 2000 Driver for JDBC]Error establishing socket
- [Microsoft][SQLServer 2000 Driver for JDBC]Error establishing socket 解决方法
- [Microsoft][SQLServer 2000 Driver for JDBC]Error establishing socket.
- [Microsoft][SQLServer 2000 Driver for JDBC]Error establishing socket
- [Microsoft][SQLServer 2000 Driver for JDBC]Error establishing socket错误解决方法总结
- Cannot create PoolableConnectionFactory ([Microsoft][SQLServer 2000 Driver
- 关于sqlServer [Microsoft][SQLServer 2000 Driver for JDBC]Error establishing socket 的解决方法
- 用sql server2005的错误 java.sql.SQLException: [Microsoft][SQLServer 2000 Driver for JDBC]Error establishing socket. 解决办法
- java.sql.SQLException: [Microsoft][SQLServer 2000 Driver for JDBC]Error establishing socket.
- java.sql.SQLException: [Microsoft][SQLServer 2000 Driver for JDBC]Error establishing socket.
- java.sql.SQLException: [ Microsoft ][SQLServer 2000 Driver for JDBC ] Error establishing socket.
- java.sql.SQLException: [Microsoft][SQLServer 2000 Driver for JDBC]Error establishing socket
- java.sql.SQLException: [Microsoft][SQLServer 2000 Driver for JDBC]Error establishing socket.
- 在DirectX9.0中使用Mesh (1)
- java.net.MalformedURLException: no protocol: 5.0/webapps/ra/WEB-INF/classes/]异常处理
- SU01修改用户的role的有效期限
- delphi 中 字符串分割函数 ExtractStringsEx,是ExtractStrings函数的扩展
- 在DirectX9.0中使用Mesh (2)
- Cannot create PoolableConnectionFactory ([Microsoft][SQLServer 2000 Driver for JDBC]Error establishing socket.)错误
- 一些.net开源项目
- JavaDoc使用注释
- ECC6 SR2 ACCESS KEY破解细节
- 可变顶点格式
- UTF8 与 UCS
- 图片防盗链
- Directx3D编程框架
- DOM 精简知识教程