jakarta-tomcat-5.0.28和Eclipse3.1和MyEclipse4.0GA和MSSQL2000SP4和JDK1.4.2配置JNDI辛苦完成档

jakarta-tomcat-5.0.28和Eclipse3.1和MyEclipse4.0GA和MSSQL2000SP4和JDK1.4.2配置JNDI辛苦完成档
转载请注明作者:ghyghost(爱国人士)
在学习J2EE中的JNDI时,发现书上讲的配置环境这方面内容几乎没有,在网上找了一些相关的资料也非常模糊,而且例子不是不准确,就是CONN为NULL这些怪事情,终于还在研究下搞定,步骤非常简单,但研究起来的确是一件吃辛苦的事情。嗯^_^

第一步要做的肯定是安装相应的软件吧。JDK先要安装,然后设置一下环境变量,下一步是eclipse3.1及myeclipse4.0GA和tomcat5.0.28及MSSQL2000。

第二步肯定是JDBC FOR MSSQL2000 SP3的安装及COPY相应的JAR文件到TOMCAT相应的目标目录,此处省略。

第三步就是设置了。
  进入eclipse3.1新建一个[Web Project]项目名字为JNDI_PROJECT,然后在package explorer窗口中JNDI_PROJECT项目中的WebRoot目录中新建一个JSP文件名字叫ghyghost.jsp(内容为默认),然后将当前项目目录WebRoot目录中WEB-INF目录中的Web.xml文件全部内容改成如下的全部内容:
<? xml version="1.0" encoding="UTF-8" ?>
< web-app  version ="2.4"  
 xmlns
="http://java.sun.com/xml/ns/j2ee"  
 xmlns:xsi
="http://www.w3.org/2001/XMLSchema-instance"  
 xsi:schemaLocation
="http://java.sun.com/xml/ns/j2ee 
 http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"
>
    
< resource-ref >
        
< res-ref-name > jdbc/JNDINAME </ res-ref-name >
        
< res-type > javax.sql.DataSource </ res-type >
        
< res-auth > Container </ res-auth >
    
</ resource-ref >
</ web-app >

注意到这句了吗: < res-ref-name > jdbc/JNDINAME </ res-ref-name >??其中jdbc/JNDINAME中的JNDINAME就是你的JNDI的名字,相当于你的名字呀,很重要,这里看官先别改,设置与我一样就行。OK。!

这时在eclipse3.1中开始部属这个项目,并且启动TOMCAT服务器。进入G:\Tomcat\webapps这个目录后,发现有一个目录名字为JNDI_PROJECT的,就证明部属成功了。恭喜你。
  下一步要做的就是进入 http://localhost:8080/admin这个本地网址了,然后输入相应的用户名和密码后,在左边的树结构中发现有三个结点,分别是:Tomcat Server和Resources和User Definition这三个,这三个结点还有子结点,我们只关心第一个Tomcat Server这个结点,点击Service(Catalina)这个结点左边像“钥匙”的图标展开树形结构,再点击Host(localhost)这个结点左边像“钥匙”的图标展开树形结构,如果这时你看到有一个结点的名字是:Context(/abc),再一次恭喜你,离成功很近了。
  那么我们就点击Context(/JNDI_PROJECT)结点左边像“钥匙”的图标再一次展开树形结构,里面的Resources结点中有结点Data Sources,非常棒,这个结点就是我们想要的结果。点击Data Sources这个结点,在网页界面的右边出现了界面,这时就会发现JNDI NAME下面有一个我们刚刚在XML定义的 jdbc/JNDINAME 链接,点击链接后,出现一个界面,我们只关心的是前五项,即:
JNDI Name: 这里面显示你的JNDI的名字,就像你的名字一样,叫你的名字就是你,不是别人。 因为前面我们在Web.XML文件中定义过了名字了,所以在这里就能显示出来。
Data Source URL: 数据资源的URL,如果你写过JDBC很熟悉这个名词吧,呵呵。这里我们添上:jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=pubs我们要连接的是pubs数据库,MSSQL2000中自带的。
JDBC Driver Class: 这个不用讲了吧,添入:com.microsoft.jdbc.sqlserver.SQLServerDriver
User Name和Password是你在MSSQL2000企业管理器中设置的用户名和密码,在我这里用户名为sa密码为空,即不添。

转载请注明作者:ghyghost(爱国人士)

OK,到此,添过了上面五项内容后,点击SAVE提交表单,保存起来还要点击网页上面的Commit Changes按钮来更新一下系统设置。

到此我们在TOMCAT中的ADMIN中的设置就到此为至。
--------------------------------------------------
这一步开始进入ECLIPSE3.1中写JSP用JNDI连接数据库的代码了,测试代码如下:
<% @ page language = " java "   import = " java.util.* " %>
<% @ page  import = " javax.sql.* " %>
<% @ page  import = " java.sql.* " %>
<% @ page  import = " javax.naming.* " %>

<! DOCTYPE HTML PUBLIC  " -//W3C//DTD HTML 4.01 Transitional//EN " >
< html >
< head >
</ head >

< body >
<% Context ctx  =   null ;
            Connection cnn 
=   null ;
            java.sql.Statement stmt 
=   null ;
            ResultSet rs 
=   null ;
            
try   {
                ctx 
= new InitialContext();
                
if (ctx == null)
                    
throw new Exception("initialize  the Context  failed");
                out.println(
"abc1" + "<br>");
                DataSource ds 
= (DataSource) ctx
                        .lookup(
"java:comp/env/jdbc/JNDINAME");//看见这句没?连接的JNDI的名字为:JNDINAME很重要
                out.println(
"abc2" + "<br>");
                out.println(ds);
                out.println(
"abc3" + "<br>");
                
if (ds == null{

                    
throw new Exception("datasource  is  null");
                }

                out.println(
"abc4" + "<br>");
                
try {
                    out.println(
"abc5" + "<br>");
                    cnn 
= ds.getConnection();
                    
if (cnn == null{
                        out.println(
"cn is NONONO!");
                    }

                    out.println(
"abc6" + "<br>");
                    stmt 
= cnn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,
                            ResultSet.CONCUR_UPDATABLE);
                    rs 
= stmt.executeQuery("select * from jobs");

                    
while (rs.next()) {
                        out.println(rs.getObject(
"job_id").toString());
                    }

                    out.println(
"<br> connection:" + cnn);
                }
 catch (Exception e) {
                    e.printStackTrace();
                }


            }
  finally   {
                
if (rs != null)
                    rs.close();
                
if (stmt != null)
                    stmt.close();
                
if (cnn != null)
                    cnn.close();
                
if (ctx != null)
                    ctx.close();
            }


        
%>
</ body >
</ html >

输入完成JSP程序后,重新部属一下ABC这个项目,并启动TOMCAT服务器后,输入如下网址:

http://localhost:8080/JNDI_PROJECT/ghyghost.jsp

这时如果出现类似如下的内容就说明你的JNDI的实验做成功了。呵呵,
abc1
abc2
org.apache.commons.dbcp.BasicDataSource@32ef2d abc3
abc4
abc5
abc6
1   2   3   4   5   6   7   8   9   10   11   12   13   14  
connection:org.apache.commons.dbcp.PoolableConnection@7c7894 

打字好累~~

                        转载请注明作者:ghyghost(爱国人士)

你可能感兴趣的:(jakarta-tomcat-5.0.28和Eclipse3.1和MyEclipse4.0GA和MSSQL2000SP4和JDK1.4.2配置JNDI辛苦完成档)