Tomcat访问数据源 需要加 java:comp/env 前缀

Tomcat 访问数据源需要加 java:comp/env的前缀

为什么?

Tomcat本身并不具备提供数据源的能力,它需要借助其他的开源数据源(如DBCP)类实现。通过Tomcat提供的数据源,我们的程序中可以通过JNDI来访问数据源。

// 初始化

ContextContext ctx = new InitialContext();

// 获取数据源,其中java:comp/env是Tomcat规定的,Tomcat提供的JNDI绑定都必须加该前缀

DataSource ds = (DataSource)ctx.lookup("java:comp/env/jdbc/dataSource");

// 获取数据库链接

Connection conn = ds.getConnection();

// 一系列数据库操作

... ...

Tomcat访问数据源 需要加 java:comp/env 前缀

时间: 2024-10-01 02:28:20

Tomcat访问数据源 需要加 java:comp/env 前缀的相关文章

javaWeb中JNDI的使用,为什么要加java:comp/env前缀

转载自(http://blog.csdn.net/guodongsoft/article/details/52399527) 我们在使用JNDI调用某个对象时,会有下述两种方式 context.lookup(“java:comp/env/XXX”) context.lookup(“XXX”) context.lookup(“java:comp/env/XXX”)只能用在J2EE环境,如果你自己写一个main函数,想通过context.lookup(“java:comp/env/XXX”)这样的方

对java:comp/env的研究(转)

对java:comp/env的研究 http://f543711700.iteye.com/blog/1173618 这两天研究了一下 context.lookup("java:comp/env/XXX")和直接context.lookup("XXX")的区别 网上关于这两个的文章也很多,但是都说得很难理解,比如什么ENC环境啊什么的,各种概念. 其实说得简单点:context.lookup("java:comp/env/XXX")只能用在J2E

理解JNDI中 java:comp/env/jdbc/datasource 与 jdbc/datasource 的不同之处(转)

在描述JNDI,例如获得数据源时,JNDI地址有两种写法,例如同是  jdbc/testDS 数据源: A:java:comp/env/jdbc/testDS B:jdbc/testDS   这两种写法,配置的方式也不尽相同,第一种方法应该算是一种利于程序移植或迁移的方法,它的实现与“映射”的概念相同,而B方法,则是一个硬引用. java:comp/env 是环境命名上下文(environment naming context(ENC)),是在EJB规范1.1以后引入的,引入这个是为了解决原来J

java:comp/env/jdbc/ 的两种配置方法

1. 在 META-INF 下建立文件: context.xml <?xml version="1.0" encoding="UTF-8"?> <Context> <Resource auth="Container" delegateProperties="foo=bar" factory="org.logicalcobwebs.proxool.ProxoolDataSource&quo

详解JNDI的lookup资源引用 java:/comp/env

ENC的概念: The application component environment is referred to as the ENC, the enterprise naming context. 应用组件的业务逻辑应该是 ENC中取得对象.组件提供者使用标准的部署描述符指定必需的ENC入口.这些ENC入口是运行时组件所依赖的资源等信息. 一个应用组件实例使用 JNDI定位ENC.ENC的标准JNDI CONTEXT是:java;/comp/env // Obtain the appl

JNDI中 java:comp/env 的理解

J2EE 上下文环境变量前缀,一般有如下几种:java:/comp/env/jdbcjava:/comp/env/urljava:/comp/env/mailjava:/comp/env/jms在部署和运行EJB中,容器将在java:/comp/env/处创建一个JNDI上下文环境,在该环境中,可以查找获得在ejb-jar.xml中定义的变量,通过在程序中用JNDI的lookup()方法查找java:/comp/env/后面的变量名得到的.这些值是只读的,也只供本地J2EE组件使用,而客户机无法

tomcat配置数据源

1.修改conf下的context.xml,在<context>标签中添加: 1 <Resource 2 name="jdbc/soa" 3 auth="Container" 4 type="javax.sql.DataSource" 5 maxActive="100" 6 maxIdle="30" 7 maxWait="10000" 8 username="

Tomcat中使用JNDI加载JDBC数据源

以前写JDBC的时候总是手工写一个类,用硬代码写上className.url.用户名和密码什么的,然后通过DriverManager获取到Connection.那样写是很方便,但是如果想更改的话,需要修改源码再编译,给后期修改带来不便.最近看到可以使用JNDI的方法使用xml文件配置JDBC数据源,xml文件存放在war下面,这样的话就很方便我们修改jdbc的连接属性了. 首先了解下JNDI吧,百度搜索结果:JNDI(Java Naming and Directory Interface,Jav

JNDI+Tomcat配置数据源的两种方式

非全局jndi配置步骤 :此种配置方式不需要在server.xml中配置数据源,而只在tomcat/conf/Catalina/localhost下的启动配置中配置即可.注意红色字体名称必须和相同. 0.需要在tomcat/common/lib下加入数据库连接的jar包 1.web.xml配置 <resource-ref>      <description>my DB Connection</description>      <res-ref-name>