ndi(Java Naming and Directory Interface,Java命名和目录接口)是一组在Java应用中访问命名和目录服务的API。命名服务将名称和对象联系起来,使得我们可以用名称
访问对象。目录服务是一种命名服务,在这种服务里,对象不但有名称,还有属性。
tomcat配置jndi有全局配置和局部配置。大致的有以下三种配置方式:
第一种:全局配置。
1)在tomcat的conf文件夹下的context.xml配置文件中加入:
<Resource name="jndi/mybatis" auth="Container" type="javax.sql.DataSource" driverClassName="com.mysql.jdbc.Driver" url="jdbc:mysql://localhost:3306/appdb" username="root" password="123456" maxActive="20" maxIdle="10" maxWait="10000"/>
2)在项目的web.xml中加入资源引用:
<resource-ref> <description>JNDI DataSource</description> <res-ref-name>jndi/mybatis</res-ref-name> <res-ref-type>javax.sql.DataSource</res-ref-type> <res-auth>Container</res-auth> </resource-ref>
其中res-ref-name值要和context.xml的name值一致
3)jndi测试方法:
public void testJNDI() throws NamingException, SQLException{ Context ctx = new InitialContext(); DataSource ds = (DataSource) ctx.lookup("java:comp/env/jndi/mybatis"); Connection conn = ds.getConnection(); System.out.println(conn.isClosed()); }
第二种:局部配置(不推荐)
1)在tomcat的server.xml的<host>标签内,添加:
<Context path="/demo_jndi" docBase="/demo_jndi"> <Resource name="jndi/mybatis" type="javax.sql.DataSource" driverClassName="com.mysql.jdbc.Driver" maxIdle="2" maxWait="5000" username="root" password="123456" url="jdbc:mysql://localhost:3306/appdb" maxActive="4"/> </Context>
其他配置同第一种方式。
第三种:局部配置。
1)在项目的META-INFO下面新建context.xml。加入:
<?xml version="1.0" encoding="UTF-8"?> <Context> <Resource name="jndi/mybatis" auth="Container" type="javax.sql.DataSource" driverClassName="com.mysql.jdbc.Driver" url="jdbc:mysql://localhost:3306/appdb" username="root" password="123456" maxActive="20" maxIdle="10" maxWait="10000"/> </Context>
总结:如果要配置局部的话,推荐使用第三种方式,这样不依赖tomcat了。但是还是推荐使用第一种方式好,虽然依赖tomat,但是是全局的,而且可以配置多个。
本人的一个项目使用的是第一种
<?xml version="1.0" encoding="UTF-8"?> <!-- Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to You under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. --><!-- The contents of this file will be loaded for each web application --><Context> <!-- Default set of monitored resources --> <WatchedResource>WEB-INF/web.xml</WatchedResource> <!-- Uncomment this to disable session persistence across Tomcat restarts --> <!-- <Manager pathname="" /> --> <!-- Uncomment this to enable Comet connection tacking (provides events on session expiration as well as webapp lifecycle) --> <!-- <Valve className="org.apache.catalina.valves.CometConnectionManagerValve" /> --> <Resource name="gd-datasource" auth="Container" type="com.mchange.v2.c3p0.ComboPooledDataSource" factory="org.apache.naming.factory.BeanFactory" driverClass="oracle.jdbc.driver.OracleDriver" jdbcUrl="jdbc:oracle:thin:@172.16.10.27:1521:orcl" user="test" password="test" minPoolSize="5" maxPoolSize="30" maxIdleTime="1800" acquireIncrement="2" maxStatements="0" initialPoolSize="20" idleConnectionTestPeriod="60" acquireRetryAttempts="30" acquireRetryDelay="1000" testConnectionOnCheckin="true" breakAfterAcquireFailure="false" preferredTestQuery="select 1 from dual" testConnectionOnCheckout="true"/> <ResourceLink name="gd-datasource" global="gd-datasource" type="javax.sql.DataSource"/> </Context>
相关推荐
JNDI配置文件是设置这些资源定位的关键部分。 ### JNDI配置文件详解 1. **JNDI的基本概念** - **命名服务**:存储和检索对象的名字与引用之间的映射关系。 - **目录服务**:扩展了命名服务,提供了更丰富的属性...
### JNDI配置原理详解 #### 一、引言 JNDI(Java Naming and Directory Interface)是Java平台的一部分,它允许开发人员访问命名服务,从而可以存储和检索应用程序组件名称和服务之间的映射关系。本文将详细介绍...
1. **理解JNDI配置**: JNDI是一种标准服务,用于在分布式环境中查找和绑定对象。在Web应用中,数据源可以通过JNDI名字在全局命名空间中注册,然后应用通过这个名字查找并获取数据源。 2. **Spring中的数据源配置*...
1.1 Apache Tomcat各版本 1.2 Apache Tomcat Versions 1.3 Java事务处理总结 1.4 JavaBean中使用JDBC...1.22 JNDI配置原理详解 1.23 JSF+Seam框架学习心得 1.24 java jdbc驱动的四种类型 1.25 resource-ref元素
### JNDI配置在Tomcat中的详细介绍 JNDI(Java Naming and Directory Interface)是Java平台的一个标准接口,用于访问命名和目录服务。在企业级应用中,JNDI常被用于查找和引用各种资源,如数据库连接、消息队列等...
### 常见数据库JNDI配置文件解析 在企业级应用开发中,数据库连接池是提高系统性能、降低资源消耗的重要手段之一。而Java命名与目录接口(Java Naming and Directory Interface, JNDI)是一种广泛使用的API,用于...
在标题"**EJB例子包含client以及jndi配置**"中,我们可以理解这是一个关于EJB应用的实例,它不仅包括了EJB服务器端的实现,还包含了客户端(client)的代码以及JNDI(Java Naming and Directory Interface)的配置。...
本文档旨在指导读者如何在 Eclipse 中配置 GlassFish 3.1.1,实现连接池配置和 JNDI 配置。同时,也会解决在部署过程中可能出现的异常。 一、GlassFish 3.1.1 简介 GlassFish 是一个开源的 Java EE 应用服务器,由 ...
本篇文章将详细介绍如何使用JNDI配置数据源进行数据库连接。 1. **JNDI概述** JNDI提供了一种统一的接口来访问命名和目录服务,比如DNS、LDAP等。在Java Web环境中,它常用来查找和绑定应用程序所需的资源,如数据...
### servlet+mysql的jndi配置详解 #### 一、配置数据库连接池 数据库连接池是一种用于管理数据库连接的技术,可以提高应用访问数据库的效率。本文档主要介绍如何在基于servlet的应用中配置MySQL数据库连接池,并...
JNDI配置数据源是将数据库连接池集成到Tomcat中的重要步骤,这样可以提高应用的性能和可维护性。下面我们将详细介绍如何在Tomcat中通过JNDI配置数据源。 首先,我们需要了解数据源是什么。数据源是一个对象,它管理...
《JBoss安装与JNDI配置详解》 JBoss,作为一个开源的应用服务器,广泛应用于Java EE应用程序的部署和管理。本文将详细介绍JBoss的安装过程以及JNDI(Java Naming and Directory Interface)的配置,旨在帮助开发者...
### Resin中的JNDI配置详解 在Java开发领域,JNDI(Java Naming and Directory Interface)是一个重要的概念,它为应用程序提供了一种查找和访问各种类型命名对象的方法,包括远程对象、数据库连接等。而Resin作为...
### EJB MDB JNDI配置信息详解 #### 一、引言 在Java企业级应用开发中,EJB(Message Driven Bean, MDB)是用于处理异步消息传递的关键技术之一。而Java Naming and Directory Interface (JNDI)则是Java平台提供的一...
Tomcat6+Spring+JNDI配置数据源说明 本文档主要介绍了Tomcat6+Spring+JNDI配置数据源的详细步骤和原理。数据源是一个池子,里面有若干个数据连接对象,当需要时就从里面拿一个使用,使用完毕就放回去,如果超过最大...
Tomcat JNDI 配置 Tomcat JNDI 配置是 Java Web 应用程序中的一种常见配置,用于将数据库连接信息以 JNDI(Java Naming and Directory Interface)的形式存储在 Tomcat 服务器中,以便于应用程序可以通过 JNDI 来...
总结起来,JNDI配置是Java Web应用中处理数据库连接的关键步骤,它使得应用能够灵活地管理和使用数据库资源,同时也提升了系统的可维护性和安全性。正确配置和使用JNDI,对于优化应用性能和简化管理流程具有重要意义...