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

来源:互联网 发布:数据库系统原理第四版 编辑:程序博客网 时间:2024/05/15 09:39
 无意中搜了下网上的相关文章,发现天下文章一大抄,有不少文章都是错的。自己整理一下关于这方面的心得,希望能给有需要的人一点帮助吧。

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中无处不在。