用数据源无法获得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>
&nb