`
chnic
  • 浏览: 226008 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

在Tomcat5.0.28 和5.5.15 配置JNDI数据源

阅读更多

无意中搜了下网上的相关文章,发现天下文章一大抄,有不少文章都是错的。自己整理一下关于这方面的心得,希望能给有需要的人一点帮助吧。

Tomcat 5.0.28

不用多说第一步肯定是装好Tomcat了,5.5以下的版本不需要1.5以上的JDK支持。把驱动包拷到%Tomcat%\common\lib 目录下, 搞定之后进入http://localhost:8080/admin/  这时左边会有一个树形菜单。我们假设你现在的工程名字叫Test,按照  Tomcat Server -> Service -> Host(localhost) -> Context(/Text) -> Resource -> Data Source 的顺序进入数据源设置菜单。在右上角的下拉框选择 Create new Data Source,这时会出现一个菜单。按照菜单的要求填完Save保存,之后点击Commit Changes提交。这时会在 %Tomcat%\conf\Catalina\localhost 下 你会发现Test.xml Context节点下多了如下的内容

 

  <Resource name="jdbc/mysql" type="javax.sql.DataSource"/>
  <ResourceParams name="jdbc/mysql">
    <parameter>
      <name>maxWait</name>
      <value>5000</value>
    </parameter>
    <parameter>
      <name>maxActive</name>
      <value>4</value>
    </parameter>
    <parameter>
      <name>password</name>
      <value>root</value>
    </parameter>
    <parameter>
      <name>url</name>
      <value>jdbc:mysql://localhost:3306/test</value>
    </parameter>
    <parameter>
      <name>driverClassName</name>
      <value>com.mysql.jdbc.Driver</value>
    </parameter>
    <parameter>
      <name>maxIdle</name>
      <value>2</value>
    </parameter>
    <parameter>
      <name>username</name>
      <value>root</value>
    </parameter>
  </ResourceParams>
 

就此配置完成,若是觉得进入admin页面配置麻烦也可以把上面的那段XML直接粘贴到 %Tomcat%\conf\Catalina\localhost  目录下相对应的工程xml里。接下来我们用程序测试。

 

Context context = new InitialContext();   
DataSource ds = (DataSource)context.lookup("java:comp/env/jdbc/mysql");   
Connection conn = ds.getConnection();   
System.out.println(conn);  
 

控制台会显示一个Mysql的连接,说明配置成功。关于JNDI的路径 java:comp/env/jdbc/mysql 不明白的人可以去参阅相关的资料,在此就不多说,不过还是要啰唆一句:其实把JNDI想像成为一个xml文件即可,JNDI就相当XPath。

Tomcat 5.5.15

 Tomcat 5.5需要JDK 1.5支持。安装完毕之后把Admin的管理插件也安装上。可以在Apache的网站上下到Admin的插件,文件名apache-tomcat-5.5.25-admin.zip。一切做完之后第一步还是把驱动文件拷到%Tomcat%\common\lib下。之后进入admin页面。这次我们配置全局的JNDI数据源也就是这个数据源可以被所有工程共享。选择Resources-> Data Sources 节点,创建一个JNDI Data Source。填入相应的数据,保存提交。这个时候在%Tomcat%\conf下的server.xml中会多出如下内容。

 

<Resource  
      name="jdbc/mysql"  
      type="javax.sql.DataSource"  
      password="root"  
      driverClassName="com.mysql.jdbc.Driver"  
      maxIdle="2"  
      maxWait="5000"  
      username="root"  
      url="jdbc:mysql://localhost:3306/test"  
      maxActive="4"/>  
 

观察后能发现5.5和5.0生成的配置文件并不一样。拷贝这段xml代码然后将其保存至同目录的context.xml文件的Context节点下。重新启动Tomcat并用测试代码测试,发现也可以得到连接。
这个时候我们发现我们的测试代码并没有改一行一句,数据库的改变对上层程序完全是透明的。JNDI使得上层的程序不必关注一些顶层的配置,使得配置和程序彻底解耦。这就是JNDI的一大益处。

看来解耦合在J2EE中无处不在。

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics