JNDI 技术总结示例

其实不管什么技术只要看懂了官方文档其实都不难下面展示一个简单的JNDI示例。

示例是按照tomcat官方文档doc做的文档目录在tomcat的apache-tomcat-7.0.30/webapps/docs/index.html下边,打开之后可以在左边看到


然后点击可以看到如下:



然后点击4按照上边的提示做就可以了。

1、第一步:
首先复制第二条到项目的web.xml下边,并作修改如下:
<resource-ref>

<!-- 说明 -->
  <description>
   jndiTest
  </description>

  <!-- JNDI的虚拟名称 可以随便起  但要保证和context.xml中的resource的name同名 -->
  <res-ref-name>
    java/jndiTest
  </res-ref-name>
  <res-type>
    javax.sql.DataSource
  </res-type>

  <!-- 容器 -->
  <res-auth>
    Container
  </res-auth>
</resource-ref>


2、第二步在页面引用注册的JNDI数据源

<%
//构造一个初始化的上下文
Context initCtx = new InitialContext();
//env环境是一个私有的环境,只能在该组件内部存取。对其它组件是不可见的。
//1.EJB1不能存取EJB2的ENV。
//2.任何一个客户端代码,不管它是运行在应用服务器的同一个JVM内或者是远程调用,均不能访问这些JNDI。
//3.组件之间是相互隔离的,不同组件之间可以定义它自己的环境参数。比如EJB1可以定义自己的环境变量参
//数:java:comp/env/red
// java:comp/env 凡是绑定在java: 名字下面的子环境,均只能在JBOSS 服务器内部才能进行访问。
//无法进行远程访问,比如DataSource 均被绑定在 java:下面。不能远程访问。而EJB,JTA均被绑定在全局范//围之内,能进行远程访问。
//检索指定的对象

Context envCtx = (Context) initCtx.lookup("java:comp/env");
//检索 jndi数据源的虚拟路径   查询它时返回一个和它相对应的一个目录空间!
DataSource ds = (DataSource)envCtx.lookup("java/jndiTest");

Connection conn = ds.getConnection();
Statement statement=conn.createStatement();
ResultSet rs=statement.executeQuery("select * from student");
while(rs.next())
{
    out.println(rs.getObject(1)+"\t"+rs.getObject(2)+"\t"+rs.getObject(3)+"</br>");
}
%>
这一步需要导入如下的类:(注意千万别导入错误)
<%@page import="java.sql.ResultSet"%>
<%@page import="java.sql.Statement"%>
<%@page import="java.sql.Connection"%>
<%@page import="javax.sql.DataSource"%>
<%@page import="javax.naming.InitialContext"%>
<%@page import="javax.naming.Context"%>

3、第
在tomcat的apache-tomcat-7.0.30\conf配置目录下边选择context.xml在</Context>结束标签之前添加如下内容:(其中name的名字必须和项目的web.xml配置相同)
<Resource name="java/jndiTest"
            auth="Container"
            type="javax.sql.DataSource"
            username="root"
            password="root"
            driverClassName="com.mysql.jdbc.Driver"
            url="jdbc:mysql://10.37.44.26:3306/jnditest"
            maxActive="8"
            maxIdle="4"/>
4、最终结果展示
(从数据库查找的结果如下:)



一个简单的JNDI应用程序完成了
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值