tomcat5.5 JDNI 数据源配置
1)启动Tomcat服务器,打开浏览器,输入http://localhost:8080/admin(其中localhost是名称服务器或称为主机),
进入
2)选择Resources-Data sources进入配置数据源界面,选择
Data Source Actions ->选择Create New Data Source,进入配置详细信息界面
主要内容例如下:
JNDI Name: ->jdbc/MobileMail
Data Source URL ->jdbc:mysql://localhost:3306/test
JDBC Driver Class->jdbc:microsoft:sqlserver://localhost:1433;databaseName=Email;
3)修改\conf\Catalina\localhost目录下建立一个xml文件,名称为你所发布的web应用的名称.xml,(如MobileMail.xml)打开添加内容如下:
<Context>
<Resource name="jdbc/MobileMail" auth="Container" type="javax.sql.DataSource"
maxActive="20" maxIdle="10" maxWait="-1"
username="sa" password=""
driverClassName="com.microsoft.jdbc.sqlserver.SQLServerDriver"
url="jdbc:microsoft:sqlserver://localhost:1433;databaseName=Email;"
/>
</Context>
内容同conf/server.xml中<GlobalNamingResources>
<Resource name="jdbc/MobileMail" auth="Container" type="javax.sql.DataSource"
maxActive="20" maxIdle="10" maxWait="-1"
username="sa" password=""
driverClassName="com.microsoft.jdbc.sqlserver.SQLServerDriver"
url="jdbc:microsoft:sqlserver://localhost:1433;databaseName=Email;"
/>
</GlobalNamingResources>
少了这一步会报错:Cannot create JDBC driver of class '' for connect URL 'null'
4)修改web.xml
打开%TOMCAT_HOME%\conf\web.xml,在的前面添加以下内容:
<resource-ref>
<description>DB2 Datasource </description>
<res-ref-name>jdbc/MobileMail</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
</resource-ref>
注意res-ref-name填写的内容要与在上文提到的JNDI Name名称一致。
到这里,配置
5)引用JNDI创建数据源
private static Connection con;
public static Connection getConnection() {
Context initCtx = null;
DataSource ds=null;
try {
initCtx = new InitialContext();
Context envCtx = (Context) initCtx.lookup("java:comp/env");
ds= (DataSource)envCtx.lookup("jdbc/MobileMail");
} catch (NamingException e1) {
e1.printStackTrace();
}
try {
con = ds.getConnection( );
} catch (SQLException e) {
e.printStackTrace();
}
return con;
}