已经安装sp4补丁org.apache.tomcat.dbcp.dbcp.SQLNestedException: Cannot create PoolableConnectionFactory ([Microsoft][SQLServer 2000 Driver for JDBC]Error establishing socket.)
at org.apache.tomcat.dbcp.dbcp.BasicDataSource.createDataSource(BasicDataSource.java:855)
at org.apache.tomcat.dbcp.dbcp.BasicDataSource.getConnection(BasicDataSource.java:540)
at DatabaseManager.DatabaseConnection.getDBConnection(DatabaseConnection.java:20)
at UserManager.UserLogin.doPost(UserLogin.java:43)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:710)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:228)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:104)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:216)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:634)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:445)
at java.lang.Thread.run(Unknown Source)
Caused by: java.sql.SQLException: [Microsoft][SQLServer 2000 Driver for JDBC]Error establishing socket.
at com.microsoft.jdbc.base.BaseExceptions.createException(Unknown Source)
at com.microsoft.jdbc.base.BaseExceptions.getException(Unknown Source)
at com.microsoft.jdbc.base.BaseExceptions.getException(Unknown Source)
at com.microsoft.jdbc.sqlserver.tds.TDSConnection.<init>(Unknown Source)
at com.microsoft.jdbc.sqlserver.SQLServerImplConnection.open(Unknown Source)
at com.microsoft.jdbc.base.BaseConnection.getNewImplConnection(Unknown Source)
at com.microsoft.jdbc.base.BaseConnection.open(Unknown Source)
at com.microsoft.jdbc.base.BaseDriver.connect(Unknown Source)
at org.apache.tomcat.dbcp.dbcp.DriverConnectionFactory.createConnection(DriverConnectionFactory.java:37)
at org.apache.tomcat.dbcp.dbcp.PoolableConnectionFactory.makeObject(PoolableConnectionFactory.java:290)
at org.apache.tomcat.dbcp.dbcp.BasicDataSource.validateConnectionFactory(BasicDataSource.java:877)
at org.apache.tomcat.dbcp.dbcp.BasicDataSource.createDataSource(BasicDataSource.java:851)
... 17 more
连接代码如下:import java.sql.Connection;
import javax.naming.Context;
import javax.naming.InitialContext;
import javax.sql.DataSource;public class DatabaseConnection 
{
static Connection conn = null;

public static Connection getDBConnection()
{
final String CON_JNDI_NAME = "jdbc/EquipmentManager";
try
{
InitialContext ctx=new InitialContext();
Context envCtx = (Context)ctx.lookup("java:comp/env");
DataSource ds = (DataSource)envCtx.lookup(CON_JNDI_NAME);
conn = ds.getConnection();
}
catch(Exception ex)
{
ex.printStackTrace();
}
return conn;
}

public void DBclose()
{
if(conn!=null)
conn = null;
}
}xml如下  <resource-ref>
<description>SQL Server Datasource</description>
<res-ref-name>jdbc/EquipmentManager</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
  </resource-ref>Catalina如下
[code=XML]
<?xml version="1.0" encoding="UTF-8"?>
<Context antiJARLocking="true" docBase="C:\Program Files\Apache Software Foundation\Tomcat 6.0\webapps\EclipseTest\WebRoot" path="EclipseTest">
<Resource
name="jdbc/EquipmentManager"
type="javax.sql.DataSource"
driverClassName="com.microsoft.jdbc.sqlserver.SQLServerDriver"
DatabaseName="EquipmentManager"
url="jdbc:microsoft:sqlserver://localhost:1433"
username="sa"
password="sa" 
maxActive="4"
maxIdle="2"
maxWait="5000"
/>
</Context>[/code]

解决方案 »

  1.   

    jar包难道是3个的那种,
    你还成sqljdbc。jar 一个的这个<Resource
        name="jdbc/EquipmentManager"
        type="javax.sql.DataSource"
        driverClassName="com.microsoft.sqlserver.jdbc.SQLServerDriver"
        DatabaseName="EquipmentManager"
        url="jdbc:sqlserver://localhost:1433"
        username="sa"
        password="sa" 
        maxActive="4"    
        maxIdle="2"
        maxWait="5000"    
    />