Chinaunix首页 | 论坛 | 博客
  • 博客访问: 2293184
  • 博文数量: 321
  • 博客积分: 3440
  • 博客等级: 中校
  • 技术积分: 2992
  • 用 户 组: 普通用户
  • 注册时间: 2007-05-24 09:08
个人简介

我就在这里

文章分类

全部博文(321)

文章存档

2015年(9)

2014年(84)

2013年(101)

2012年(25)

2011年(29)

2010年(21)

2009年(6)

2008年(23)

2007年(23)

分类: Java

2007-09-25 09:52:10

不怪别人,只怪自己刚刚接解JSP开发,为了结合 JNDI,自己费了一天加一个晚上的时间,感觉有点对不住自己,不过好碍最后有了结果,下面是我配置JNDI及测试代码
测试环境:apache-tomcat-5.5.25、MyEclipse6.0、As400 DB2驱动程序(照此方法SQL Server2000已经测试过)

 第一步,假设我现在的应用程序目录是web,把数据驱动程序jt400*.jar放到Tomcat安装目录的common\lib和应用程序目录webapps\web\WEB-INF\lib下或D:\java\apache-tomcat-5.5.25\common\lib下面。

运行Tomcat,打开浏览器,进入Tomcat的管理界面,,登陆后,选择Resource , Data Sources,下拉菜单,Create New DataSource。
      JNDI名称:jdbc/vsagentlib
      DataSource URL:jjdbc:as400://172.40.66.208:6789/VSAGENTLIB。(相应的修改IP和数据库名称)
      JDBC Driver Class:com.ibm.as400.access.AS400JDBCDriver
      User Name:*******(用户名)
      Password:*******(数据库密码) 

  其他按照默认。save,commit changes, log out,重启Tomcat。
主意:一定要commit changes,否则无效。

第二步,打开应用程序目录 webapps\web里面的WEB-INF\web.xml,在最后前添加:
       
            VSAGENTLIB
            jdbc/vsagentlib
            javax.sql.DataSource
            Container
        

      如果没有添加这一步,就会报这样的错误:Name jdbc is not bound in this Context 。

第三步,打开Tomcat安装目录下的conf\Catalina\localhost,找到和你的应用程序同名的xml,例如web.xml。如果没有,就建一个。web.xml里面的内容是:(最好不要用web命名,容易与WEB-INF下的文件混)
        
         
         
         

      要注意的是,文件名、docBase、path、workDir都不能错,要和你应用程序名称相对应。
      如果第二步正确了,但是还没有添加这一步,就会报这样的错误:Cannot create JDBC driver of class "for connect URL 'null'" 。

D:\java\apache-tomcat-5.5.25\conf\Catalina\localhost下web.xml内容

        
        
        

WEB-INF\web.xml内容


    xmlns=""
    xmlns:xsi=""
    xsi:schemaLocation="
    /web-app_2_4.xsd">
 
    index.jsp
 
 
       vsagentlib
       jdbc/vsagentlib
       javax.sql.DataSource
       Container
 



以下是JSP测试代码(conntst.jsp):
<%@ page language="java" import="java.util.*" pageEncoding="gb2312"%>

<%@ page import="java.io.*"%>
<%@ page import="java.util.*"%>
<%@ page import="java.sql.*"%>
<%@ page import="javax.sql.*"%>
<%@ page import="javax.naming.*"%>

<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>



 
   
   
    My JSP 'index.jsp' starting page
   
   
       
   
   
   
 
 
 
    <%
        Context       ctx=null; 
        Connection  conn=null; 
        ResultSet   rs=null; 
        Statement   stmt=null;
       
        ctx = (Context) new InitialContext().lookup("java:comp/env");
        out.println(ctx);
        if(ctx==null) 
            throw   new   Exception("没有匹配的环境");
        String jndi = "jdbc/mssql";
        jndi ="jdbc/vsagentlib";
       
        DataSource   ds =(DataSource) ctx.lookup(jndi);
        if(ds==null) 
            throw   new   Exception("没有匹配数据库");
       
       
        conn    =    ds.getConnection();
        //out.println(conn);
        stmt=conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_READ_ONLY);
        rs=stmt.executeQuery("select * from vslland");
        out.println("");
       
        while(rs.next()){
             String col1 = new String(rs.getString(1).getBytes("ISO8859-1"));
             String col2 = rs.getString(2);
             String col3 = rs.getString(3);
             String col4 = rs.getString(4);
             String col5 = rs.getString(5);
            
             out.println("");
            }
           
        out.println("
" + col1 + "" + col2 + "" + col3 + "" + col4 + "" + col5+"
");

   
        out.println("============");
             
    %>
 


最后



阅读(3227) | 评论(1) | 转发(0) |
给主人留下些什么吧!~~

chinaunix网友2008-03-26 11:38:34

为什么我会出现“没有匹配的环境”呢? 配置明明都也对呀 jar文件也都放过去了呀 好奇怪!