换掉以前的tomcat 5.5 安装了 tomcat 6.0 context.xml中是这样配置的
<!-- The contents of this file will be loaded for each web application -->
<Context>    <!-- Default set of monitored resources -->
    <WatchedResource>WEB-INF/web.xml</WatchedResource>

    <!-- Uncomment this to disable session persistence across Tomcat restarts -->
    <!--
    <Manager pathname="" />
    -->    <!-- Uncomment this to enable Comet connection tacking (provides events
         on session expiration as well as webapp lifecycle) -->
    <!--
    <Valve className="org.apache.catalina.valves.CometConnectionManagerValve" />
    -->    <Resource name="jdbc/xindunOADB" auth="Container" type="javax.sql.DataSource"

          maxActive="100" maxIdle="30" maxWait="10000"
  
  username="xindunOA" password="xindunOA"
  
  driverClassName="com.microsoft.jdbc.sqlserver.SQLServerDriver"
  
  url="jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=xindunOADB"/></Context>web.xml 这样配置
<resource-ref>
    <description>xindunOADB DataSource</description>
    <res-ref-name>jdbc/xindunOADB</res-ref-name>
    <res-type>javax.sql.DataSource</res-type>
    <res-auth>Container</res-auth>
  </resource-ref>但我一访问这个项目就报500错误 , 
org.apache.tomcat.dbcp.dbcp.SQLNestedException: Cannot create PoolableConnectionFactory 错误准确的指向连接类中的public static Connection getConnection() {
  try {
Context ic = new InitialContext();
DataSource source = (DataSource)ic.lookup("java:comp/env/jdbc/xindunOADB");
objConn = source.getConnection();
//com.mysql.jdbc.Driver
} catch (NamingException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return objConn ;
  }里面的
objConn = source.getConnection();

解决方案 »

  1.   

    不知道这样是不是足够详细
    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:1225)
    at org.apache.tomcat.dbcp.dbcp.BasicDataSource.getConnection(BasicDataSource.java:880)
    at com.xindun.util.connBean.getConnection(connBean.java:31)
    at com.xindun.util.dateOpBean.dbOp(dateOpBean.java:28)
    at com.xindun.controller.startSrv.doGet(startSrv.java:40)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:690)
    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 com.xindun.common.EncodingFilter.doFilter(EncodingFilter.java:35)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:230)
    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:261)
    at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844)
    at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:581)
    at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
    at java.lang.Thread.run(Unknown Source)
      

  2.   

    Context initCtx = new InitialContext();
    Connection con;
    Context ctx = (Context) initCtx.lookup("java:comp/env/");
    DataSource ds = (DataSource) ctx.lookup("jdbc/xindunOADB");
    con = ds.getConnection();
      

  3.   


    我想问题不会出在这里  以前使用tomcat5.5 项目运行正常 现在项目没有做改动 只是改了tomcat 的版本
      

  4.   

    还有 我是重做了系统 ms sqlserver 2000 也是重新安装的
      

  5.   

    Error establishing socket  ---> 错误的创建了一个插口
      

  6.   

    看看你的sqljdbc.jar是否放在Tomcat的common/lib目录下了,这个异常是,不能创建连接池工厂Cannot create PoolableConnectionFactory 
      

  7.   

    我现在ms sqlserver 2000 刚安装还没有打补丁呢 可能是这个问题吧
      

  8.   

    真的是这个问题 我刚刚把sp3 和 sp4 的补丁都打上了 才正常 哈哈