JDNI配置和使用
来源:互联网 发布:淘宝账号销号 编辑:程序博客网 时间:2024/06/06 07:04
JNDI java的命名与上下文接口,通常用于获取配置文件中的datasource或者内部访问路径,及属性配置.
javax.naming.Context context = new javax.naming.InitialContext();
context.lookup("java:/comp/env"+XXX);
需要注意的是,第一种方式配置的全局JNDI,需要在context中使用<ResourceLink>元素转换成局部名才可以使用,功能跟jboss-web.xml中的转换类似。另外,tomcat 中配置的资源不需要在web.xml中进行声明,也可以通过java:comp/env形式进行访问,这一点跟Jboss/jetty有区别。
以weblogic为例,你需要在和web.xml同级的目录下建立:weblogic.xml文件,在该文件里面写上:
<weblogic-web-app><resource-description>
<res-ref-name>jdbc/adsl</res-ref-name>
<jndi-name>adsl</jndi-name><!-- 这个就是全局JNDI资源名 -->
</resource-description>
</weblogic-web-app>
然后你仍然需要在web.xml里面配置上:
<resource-ref>
<res-ref-name>jdbc/adsl</res-ref-name>
<res-auth>Container</res-auth>
</resource-ref>
这样你才可以在你的程序里面通过context.lookup("java:comp/env/jdbc/adsl")访问到这个数据源。
这个是weblogic.xml的官方帮助文档:http://edocs.weblogicfans.net/wls/docs92/webapp/weblogic_xml.html
二:如果不是使用weblogic,可参见这篇文章:http://blog.csdn.net/lovingprince/article/details/6577920
其实各种不同的J2EE容器,都用不同的配置方式,以我目前的测试来看,weblogic似乎不能配置“私有的JNDI资源”,就是不能配置自己项目单独的JNDI资源(这只是我的观点,我目前没发现怎么在weblogic里面配置私有JNDI资源)
但是研究tomcat6之后发现,tomcat可以配置 全局JNDI 和私有JNDI(注意这里说的Tomcat6):
!!!首先想要说明的是Tomcat的配置不需要修改web.xml里面的任何内容!!!!!
!!!Tomcat的全局JNDI资源不能直接访问,必须有java:comp/env/前缀!!!!!!
全局的JNDI配置在server.xml里面的<GlobalNamingResources>标签里面添加如下配置:
<Resource name="jdbc/test"
auth="Container"
type="javax.sql.DataSource"
driverClassName="com.mysql.jdbc.Driver"
url="jdbc:mysql://127.0.0.1/test"
username="root"
password="root"
maxActive="20"
maxIdle="10"
maxWait="-1"/>
然后某一个项目想要引用这个全局的JNDI,就需要在项目的META-INF下面建立context.xml文件,在里面写上:
<?xml version="1.0" encoding="UTF-8"?>
<Context>
<ResourceLink name="jdbc/test" global="jdbc/test" type="javax.sql.DataSource"/>
</Context>
这样就可以在程序里面通过context.lookup("java:comp/env/jdbc/test")进行访问了。
tomcat中配置JNDI有三个地方:
1、在服务器的Server元素下配置全局的JNDI<GlobalNamingResources> conf/server.xml
2、在host元素的<DefaultContext>中配置,配置后对该host下所有的context应用都有效
3、在context元素下配置,这里配置的只对该应用有效。
需要注意的是,第一种方式配置的全局JNDI,需要在context中使用<ResourceLink>元素转换成局部名才可以使用
另外,tomcat 中配置的资源不需要在web.xml中进行声明,也可以通过java:comp/env形式进行访问
<Context path="/test_tomcat6_jndi">
<Resource name="jdbc/test"
auth="Container"
type="javax.sql.DataSource"
driverClassName="com.mysql.jdbc.Driver"
url="jdbc:mysql://127.0.0.1/test"
username="root"
password="root"
maxActive="20"
maxIdle="10"
maxWait="-1"/>
</Context>
这样就可以直接在程序中通过context.lookup("java:comp/env/jdbc/test")访问了,需要注意的是path="/test_tomcat6_jndi",这个名字必须和你的项目名称相同,而且不能少了那个斜杠,而且你的项目是通过拷贝文件夹到webapps下面的方式进行的部署。
2、 也可以在conf/context.xml里面增加如下配置:
<Resource name="jdbc/test"
auth="Container"
type="javax.sql.DataSource"
driverClassName="com.mysql.jdbc.Driver"
url="jdbc:mysql://127.0.0.1/test"
username="root"
password="root"
maxActive="20"
maxIdle="10"
maxWait="-1"/>
这样就可以直接在程序中通过context.lookup("java:comp/env/jdbc/test")访问了
3、还可以在项目的WebRoot下面的META-INF文件夹下面创建context.xml文件,再在context.xml文件里面写上
<?xml version="1.0" encoding="UTF-8"?>
<Context>
<Resource name="jdbc/test"
auth="Container"
type="javax.sql.DataSource"
driverClassName="com.mysql.jdbc.Driver"
url="jdbc:mysql://127.0.0.1/test"
username="root"
password="root"
maxActive="20"
maxIdle="10"
maxWait="-1"/>
</Context>
这样就可以直接在程序中通过context.lookup("java:comp/env/jdbc/test")访问了
阅读全文
0 0
- JDNI配置和使用
- JDNI 配置小实验
- 数据库配置,基于JDNI
- JDNI配置数据库连接池
- oracle JDNI 配置
- 使用JDNI连接数据库
- 使用JDNI连接数据库
- 常用数据库 tomcat 配置jdni
- 在tomcat中设置网络访问的虚拟路径和使用JDNI设置文件路径常量
- tomcat5.5下JDNI的配置
- tomcat7下JDNI连接池的配置
- tomcat7下JDNI连接池的配置
- JDNI的三种配置方式
- 配置连接池(JDNI方式)
- tomcat6.0中jdni连接池的配置
- jboss 7+jdni + sqlserver配置数据源,spring管理数据源
- Tomcat数据源,Jsp/Java使用JDNI服务来实现数据库连接
- [数据库连接池二]Java数据库连接池--C3P0和JDNI.
- 超强自定义TabLayout
- Codis源码解析——codis-server添加到集群
- 【nginx-rtmp】04、获取客户端订阅/连接数(Getting number of subscribers)
- Mysql 中!=和 <>
- aix下扩充swap大小
- JDNI配置和使用
- poj3259(判断有无负环)
- MVC与三层架构区别
- codeforces822D(思维)
- Android 发送广播
- 深搜广搜
- spring boot +security获取当前登录用户信息
- C++中的函数
- 图标插件--jqplot实现多种类型柱状图及饼图,表盘图演示样例