`
canofy
  • 浏览: 831824 次
  • 性别: Icon_minigender_1
  • 来自: 北京、四川
社区版块
存档分类
最新评论

JNDI使用

    博客分类:
  • j2EE
阅读更多
JNDI使用

jndi配置数据库

tomcat使用的是Tomcat 6.0.18版本

1.先在工程的WEB-INF目录下的META-INF下新建context.xml中添加配置resource,如下:

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



  2.将mysql的connet jar放入到%TOMCAT_HOME%\common\lib下面。

  3.写测试的例子:

 
public String testMain() throws SQLException, NamingException{
		Context ctx = null;   
	    DataSource ds = null;   
	    Connection conn = null;   
	    Statement stmt = null;   
	    ResultSet rs = null;   	  
	    try {   
	        ctx = new InitialContext();   
	        if (ctx == null){
	        	System.out.println("no context");   
	        	return "no context";
	        }
	            
	        ds = (DataSource) ctx.lookup("java:comp/env/jdbc/mysql");   
	        if (ds == null)  {
	        	 System.out.println("no datasource");   
		         return "no datasource";
	        }	           
	        conn = ds.getConnection();   
	        stmt = conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,   
	        ResultSet.CONCUR_READ_ONLY);   
	        String strSql = "select * from pmuser";   
	        rs = stmt.executeQuery(strSql);   
	        while (rs.next()) {   
	            System.out.println(rs.getString(2));   
	        }  
	        return "sucess";
	    } catch (Exception ex) {   
	        ex.printStackTrace();   
	        System.out.println(ex.toString());   
	    } finally {   
	        if (rs != null)   
	            rs.close();   
	        if (stmt != null)   
	            stmt.close();   
	        if (conn != null)   
	            conn.close();   
	        if (ctx != null)   
	            ctx.close();   
	    } 
	    return "error";
	}

jsp页面代码

<%
    	String br="<br />";
    	out.println("Start Test JNDI"+br);
	    TestMysqlJndi tm=new TestMysqlJndi();
	    String ret=tm.testMain();
	    out.println("Return String : "+ret+br);
	    out.println("End Test Jndi <br />"+br);
    %>



自定义JNDI

1、写自定义的类

public class MyBean {
		private String foo = "Default Foo";
		private int bar = 0;
		  public String getFoo() {
		    return (this.foo);
		  }
		  public void setFoo(String foo) {
		    this.foo = foo;
		  }
		  public int getBar() {
		    return (this.bar);
		  }
		  public void setBar(int bar) {
		    this.bar = bar;
		  }
	}

2.在context.xml中添加如下配置:

<Resource name="bean/MyBeanFactory" auth="Container"
            type="com.demo.MyBean"
            factory="org.apache.naming.factory.BeanFactory"
            bar="23"/>   

其中bar="23"是对MyBean的初始化

3.写测试代码:

public String testMethod() throws NamingException{
		Context initCtx=new InitialContext();
		Context ctx=(Context)initCtx.lookup("java:comp/env");
		MyBean bean=(MyBean)ctx.lookup("bean/MyBeanFactory");
		StringBuffer ret=new StringBuffer();
		ret.append("foo = ").append(bean.getFoo()).append(", bar = ").append(bean.getBar());		
		System.out.println(ret.toString());
		return ret.toString();
	}

jsp页面:

<%
		String br="<br />";
		out.println("Start Test JNDI"+br);
		    TestJndiMain tm=new TestJndiMain();
		    String ret=tm.testMethod();
		    out.println("Return String : "+ret+br);
		    out.println("End Test Jndi <br />"+br);
		%>


附件为完整的例子和mysql的驱动
分享到:
评论
1 楼 烨小子 2014-04-04  
之前下载了一个jndi的jar包不知道是做什么用的额

相关推荐

    Tomcat 6.0配置数据源(DBCP)和JNDI使用

    总结,配置Tomcat 6.0的数据源(DBCP)和JNDI使用,主要是通过修改服务器和应用的配置文件,然后在代码中利用JNDI查找机制获取数据源,实现数据库连接的高效管理。通过实践和理解这些步骤,可以提升你的Java Web开发...

    Jndi使用方法

    【JNDI 使用方法】 Java 命名和目录接口(JNDI)是Java应用程序访问命名和目录服务的关键工具。命名服务的核心功能是通过名称将对象与它们的标识关联,便于用户通过名称而非直接引用访问对象。目录服务则在此基础上...

    JNDI使用说明

    JNDI使用说明JNDI使用说明JNDI使用说明JNDI使用说明JNDI使用说明JNDI使用说明JNDI使用说明

    jndi使用实例

    下面是一个简单的JNDI使用示例: 1. **创建Naming Context**: 在Java代码中,我们通常使用`InitialContext`类来创建一个初始上下文,这是所有JNDI操作的起点。例如: ```java Context initialContext = new ...

    java jndi的使用

    在Java应用中,JNDI通常与Java EE服务器结合使用,用于管理数据源。例如,通过JNDI,我们可以查找在服务器中注册的数据源,然后获取数据库连接,从而实现数据库的访问。在给定的描述中提到的"博文链接"可能详细阐述...

    java JNDI总结

    EJB中的JNDI使用场景 在EJB环境中,JNDI通常用于以下几个方面: - **查找资源**:EJB可以通过JNDI来查找和使用数据源、消息队列等资源。 - **注入资源**:容器可以自动地将数据源等资源通过JNDI名称注入到EJB中,...

    EJB中JNDI的使用源码例子

    总结来说,EJB中的JNDI使用是Java EE开发中的重要组成部分,它简化了组件间的通信,并提供了服务发现的能力。通过源码学习,我们可以深入了解EJB与JNDI的交互过程,这对于理解和调试企业级Java应用程序是非常有价值...

    JNDI的包 java命名与服务

    在实际开发中,`jndi.jar` 文件通常包含了JNDI相关的API,是使用JNDI所必需的库文件。将这个JAR包加入到项目的类路径中,才能使用JNDI提供的功能。 总之,JNDI是Java中的一种重要工具,它使得分布式应用能够方便地...

    JNDI 详细解读

    例如,在 JMS、JMail、JDBC、EJB 等技术中广泛使用了 JNDI 技术。 #### 二、JNDI 的诞生背景 随着分布式应用的发展,远程访问对象的需求日益增加。虽然传统的 Socket 编程可以实现远程通信,但在实际应用中存在...

    Jndi.pdf

    3. **URL 和复合名称**:JNDI 使用 URL 来标识远程服务的位置,同时支持复合名称来表示对象的路径。 4. **事件**:JNDI 提供了事件通知机制,允许客户端订阅命名和目录服务的变化事件。 #### 五、API 概览 JNDI ...

    EJB中JNDI的使用源码例子.rar

    总之,这个压缩包提供了一个学习和实践EJB中JNDI使用的宝贵资源。通过研究这些源码,开发者不仅可以掌握JNDI的基本用法,还能了解到如何将JNDI与EJB结合,以实现在企业级应用中的高效开发。对于深入理解和应用Java ...

    java源码:EJB中JNDI的使用源码例子.zip

    本压缩包包含了一个EJB中JNDI使用源码的例子,可以帮助开发者深入理解这两者之间的交互。 在Java EE中,JNDI主要用来查找和绑定资源,如EJB、数据源、邮件会话等。EJB的实例化通常涉及到JNDI查找过程,因为EJBs是在...

    jndi-1_2_1.zip_jndi_jndi-1.2.1.jar

    描述中的“在JAVA编程中对JNDI的支持”意味着这个软件包是为了帮助Java开发者使用JNDI进行开发,而“是一个开放的源码”则说明了这个实现是开源的,允许用户查看和修改源代码,促进了社区的协作和改进。 标签“jndi...

    jndi-tool JNDI服务利用工具

    使用"jndi_tool.jar"文件,用户可以运行这个工具,执行一系列的JNDI查找测试,以检查目标系统是否易受攻击。然而,值得注意的是,任何对公开网络的服务进行攻击性的利用都可能违反法律法规,因此,这个工具应仅限于...

    (收集)tomcat jndi

    虽然描述中没有具体信息,但根据提供的博客链接,我们可以推测这是一个关于Tomcat中JNDI使用和配置的讨论。博客可能包含了如何在Tomcat环境中设置和管理JNDI资源的教程或技巧。 【标签】:“源码 工具” 这两个...

    JNDI简介

    JNDI 使用三层架构:客户端、命名/目录服务提供者(Provider)和服务接口(Service Interface)。在JNDI中,客户端通过服务接口与服务提供者交互。服务提供者可以是任何类型的命名或目录服务,如 LDAP、DNS 或简单的...

    初学ldap和jndi

    #### JNDI使用案例 在Java程序中,可以利用JNDI API来访问LDAP服务器上的数据。以下是一个简单的示例代码,展示如何使用JNDI连接到LDAP服务器: ```java import javax.naming.Context; import javax.naming....

Global site tag (gtag.js) - Google Analytics