注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

G G I C C I

 
 
 

日志

 
 

Jee - Tomcat MySQL JNDI 配置  

2013-03-15 00:07:26|  分类: Jee |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
JNDI Tomcat 启动错误
Scene:
在 Tomcat 测试 JNDI。(配置context.xml和web.xml的JDBC资源参数以供web应用连接至mysql数据库)
错误信息:
Creation of the naming context failed: javax.naming.OperationNotSupportedException: Context is read only

Solution:
? No solution yet


Tomcat MySQL JNDI 配置
Scene:
利用 JNDI 来为某个 App 配置数据源。(在 apache tomcat 提供的文档里面有提及"JNDI Datasource How-To")
好处是在该 App 的代码文件里面可以实用 JNDI 提供的接口来链接数据库,以后更改数据库产品的时候只需要一次性配置该 App 的配置文件就可以了。而不需要更改所有文件里面的代码。

Solution:
需要配置的文件有 context.xml 和 web.xml。当然(mysql的驱动可以放在web应用的 $root/WEB-INF/lib 下面,也可以放在 $tomcat/lib 下面)
Jee - 2013.03.14 - _________杰 - G G I C C I

context文件内容(其中的各项值的意义可以参考 tomcat 提供的文档):
在 context.xml 里面添加 <Context> 结点,在 <Context> 中定义 <Resource>。

 Jee - 2013.03.14 - _________杰 - G G I C C I
 
<?xml version="1.0" encoding="UTF-8"?>
<Context>
  <Resource name="jdbc/mysql" 
    auth="Container"
    type="javax.sql.DataSource"
    driverClassName="com.mysql.jdbc.Driver"
    url="jdbc:mysql://localhost:3306/test"
    username="root"
    password="tsm;jd"
    removeAbandoned="true"
    removeAbandonedTimeout="120"
    maxWait="60"
    maxActive="20"
    maxIdle="10"
    />
</Context>
web.xml文件需要添加的内容:
在 web.xml 里面定义 <resource-ref> 结点。
Jee - 2013.03.14 - _________杰 - G G I C C I
 
<resource-ref>
  <description>the data source of mysql database, the application could use this resource to 
connect to the database</description>
  <res-ref-name>mysql-ds</res-ref-name>
  <res-type>javax.sql.DataSource</res-type>
  <res-auth>Container</res-auth>
  <lookup-name>jdbc/test</lookup-name>
 </resource-ref>
可以通过菜单(安装 JBoss 社区提供的 JBoss Studio 在 eclipse 里面)
Jee - 2013.03.14 - _________杰 - G G I C C I
 
调用:
import java.sql.Connection;
import javax.naming.Context;
import javax.naming.InitialContext;
import javax.naming.NamingException;
import javax.sql.DataSource;

private static Connection CONNECTION;
static
{ try
{
Context ctx = new InitialContext();
Object datasourceRef = ctx.lookup("java:comp/env/jdbc/mysql");
DataSource ds = (DataSource)datasourceRef;
CONNECTION = ds.getConnection();
}
catch (NamingException e)
{
e.printStackTrace();
}
catch (SQLException e)
{
e.printStackTrace();
}
}

其它还有很多配制方法,具体可以参考 tomcat 文档,或者 google 一下吧。
  评论这张
 
阅读(739)| 评论(0)
推荐

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017