首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > J2EE开发 >

用数据源没法获得Connection

2012-12-27 
用数据源无法获得Connection//这是获得Connection的方法public static Connection getConnection(){Connec

用数据源无法获得Connection
//这是获得Connection的方法
public static Connection getConnection(){
Connection conn = null;
try {
Context initial = new InitialContext();
DataSource ds = (DataSource)initial.lookup("java:comp/env/xxx");
conn = ds.getConnection();
} catch (NamingException e) {
e.printStackTrace();
} catch (SQLException e) {
e.printStackTrace();
}
return conn;
}

这是web.xml中加入的部分:
<resource-ref>
       <description>DB Connection</description>
       <res-ref-name>xxx</res-ref-name>
       <res-type>javax.sql.DataSource</res-type>
       <res-auth>Container</res-auth>
   </resource-ref>  


这是在tomcat的server.xml中加入的内容:
<Context path="/xxx" docBase="xxx"   
debug="5" reloadable="true" crossContext="true"   workDir="">
<Resource   name="jdbc/xxx"
auth="Container"
type="javax.sql.DataSource"
maxActive="100" maxIdle="30" maxWait="10000"           
username="sa" password=""
driverClassName="com.microsoft.sqlserver.jdbc.SQLServerDriver"
url="jdbc:sqlserver://localhost:1433;DatabaseName=dbname"/>
</Context>

运行后出现异常,单独测试getConnection()方法显示返回的Connection为空,为什么Connection为空呢?
[解决办法]
// WebLogic & Tomcat
Context ctx = new InitialContext();
Context envCtx = (Context) ctx.lookup("java:/comp/env");
DataSource dataSource = (DataSource) envCtx.lookup(dataSourceName);
return dataSource.getConnection();


// WebSphere
Context ctx = new InitialContext();
DataSource dataSource = (DataSource) ctx.lookup(dataSourceName);
return dataSource.getConnection();


// Other web app server
Context ctx = new InitialContext();
DataSource dataSource = (DataSource) ctx.lookup("java:/comp/env/" + dataSourceName);
return dataSource.getConnection();
[解决办法]
噢....................
[解决办法]
如果不希望大家继续猜谜语的话,请将异常信息粘贴上来。
[解决办法]
偶尔 偶尔偶尔
[解决办法]
Tomcat5.0,5.5好像配置的格式不一样
有一种是可以合在一起的,像你的这样.
还有一种是分开来的,每一个配置用一个xml结点来表示


<Resource name="jdbc/Sqlserver" type="javax.sql.DataSource" auth="Container"/>

   <ResourceParams name="jdbc/Sqlserver">
      <parameter>                                                     <!--factory该参数需要自己添加-->
        <name>factory</name> 
        <value>org.apache.commons.dbcp.BasicDataSourceFactory</value> 


      </parameter> 
      <parameter>
        <name>validationQuery</name>
        <value>select * from bookinfor</value>
      </parameter>
      <parameter>
        <name>maxWait</name>
        <value>5000</value>
      </parameter>
      <parameter>
        <name>maxActive</name>
        <value>4</value>
      </parameter>
      <parameter>
        <name>password</name>
        <value>dada</value>
      </parameter>
      <parameter>
        <name>url</name>
        <value>Jdbc:Odbc:tushu</value>
      </parameter>
      <parameter>
        <name>driverClassName</name>
        <value>sun.jdbc.odbc.JdbcOdbcDriver</value>
      </parameter>
      <parameter>
        <name>maxIdle</name>
        <value>2</value>
      </parameter>
      <parameter>
        <name>username</name>
        <value>sa</value>
      </parameter>
    </ResourceParams>

热点排行