- 浏览: 3500506 次
- 性别:
- 来自: 北京
文章分类
最新评论
-
wanglf1207:
EJB的确是个不错的产品,只是因为用起来有点门槛,招来太多人吐 ...
weblogic-ejb-jar.xml的元素解析 -
qwfys200:
总结的不错。
Spring Web Flow 2.0 入门 -
u011577913:
u011577913 写道也能给我发一份翻译文档? 邮件437 ...
Hazelcast 参考文档-4 -
u011577913:
也能给我发一份翻译文档?
Hazelcast 参考文档-4 -
songzj001:
DbUnit入门实战
1. 什么是 JNDI ( Java Naming and Directory Interface )
JNDI 是用于访问不同命名和目录服务的统一 API 接口;
2. JNDI 的架构和原理
1. 架构:
第一层: java 代码,是访问 JNDI 的代码;
第二层: JNDI API :统一的命名和目录服务接口
第三层: JNDI Naming Manager : JNDI 管理器
第四层: JNDI SPI :用于构建 JNDI 实现的框架,能够动态的插入命名和目录服务提供商的产品;
第五层:命名和目录服务提供商的产品;
命名和目录服务提供商的产品 , 例如: DNS,LDAP,NIS,NDS……..; 因为这些产品都是不同的提供商提供的产品,所以他们的命名和目录服务的标准不一致,各个目录服务采用的访问协议也是不一样的,所以,要是直接访问他们的话,就要编写不同的 java 代码来访问他们;因此, JNDI SPI 就解决了这个问题,它能动态的插入这些命名和目录服务,能够将其协议专属的目录产品集成到系统中,使得我们能只需要调用一个统一的 javaAPI 就能够访问插入的产品了;
2 .原理:
JNDI 其实很好理解,他就是一个树状的结构,它的最顶是一个 initialContext 节点,然后它的下面就是绑定的一些对象或是一些 subContext ,用 JNDI 树就能够查找到树中每一个绑定上的节点上的对象的引用;
3. 怎样连接到 JNDI 上?
Environment environment = new Environment() ;// 创建一个环境对象
environment.setProviderurl(“t3://www.blogjava.net”) ;
environment.setSecurityPrincipal(“todd”) ;// 认证的用户名
environment.setSecurityCredentials(“841026”) ;// 密码
Context context = environment.getInitialContext() ;
// 创建一个 subContext 并绑定一个对象:
Context subContext = context.createSubcontext(“subContext”) ;
subContext.rebind(“newObject”,object) ;// 绑定的对象必须是可序列化的
subContext.close() ;
context.close() ;
4. 如何通过 JNDI 查找 bind 的对象?
Object object = context.lookup(“User”) ;
// 把 user 窄化到原型
User user = (User)javax.rmi.PortableRemoteObject.narrow(object, User.class) ;
context.close() ;
Spring与 weblogic jndi集成
虽然 spring本身是可以直接使用 jndi来进行获取一些对象 ,但是在和 weblogic集成的时候往往还是容易出
现问题 (在 web应用的时候出现问题的可能性不大 ,因为 container已经做了很多事情了 .)但是在 ide或者其
他的应用环境下 (不同的 jvm的时候 ),通常找不到 provider_url等属性造成无法找到 jndi.
修改配置文件如下 :
<!-- 通过 jndi的方式来调用 datasource,即使不一定是在 j2ee环境中也可以正常使用默认情况下,如果
没有指定, "java:comp/env/"将放在后面 jndi名称前面
-->
<bean id="dataSource" class="org.springframework.jndi.JndiObjectFactoryBean">
<property name="jndiName">
<value>jdbc/myDatasource</value>
</property>
<!-- 如果你不想使用 'java:comp/env/'前缀的话请设置下面的值为 true, 默认值为 false -->
<property name="resourceRef">
<value>false</value>
</property>
<property name="jndiEnvironment">
<props>
Spring连接 weblogic-DataSource错误
<!-- The value of Context.PROVIDER_URL -->
<prop key="java.naming.provider.url">t3://localhost:7001</prop>
<prop key="java.naming.factory.initial">weblogic.jndi.WLInitialContextFactory
</prop>
</props>
</property>
</bean>
注意在设置的时候由于不在同一个 jvm里面 ,所以一定要设置 provider.url和 factory.initial的属性值 ,否
则会出现 NoInitialContextException的异常出现 .
此外如果和其他的应用服务器集成的话可能不只是要设置上面的两个属性,还要设置相关的其他属性。详
细情况参考: javax.naming.Context类的说明文档。
http://java.sun.com/j2se/1.4.2/docs/api/javax/naming/Context.html
其中设置的:
<property name="jndiEnvironment">
<props>
<!-- The value of Context.PROVIDER_URL -->
<prop key="java.naming.provider.url">t3://localhost:7001</prop>
<prop key="java.naming.factory.initial">weblogic.jndi.WLInitialContextFactory
</prop>
</props>
</property> 实际上就是设置 Context初始化的时候设置的 Properties属性。
http://java.mblogger.cn/layout/posts/11849.aspx
=====================================================================
New Document<bean id="zooDataSource" class="org.springframework.jndi.JndiObjectFactoryBean">
<property name="jndiName"><value>ZOO_JNDI</value></property>
<property name="jndiEnvironment"> <props>
<prop key="java.naming.factory.initial">weblogic.jndi.WLInitialContextFactory</prop>
<prop key="java.naming.provider.url">t3://localhost:7001</prop>
<prop key="java.naming.security.principal">weblogic</prop>
<prop key="java.naming.security.credentials">weblogic</prop>
</props>
</property>
</bean>
=====================================================================
各种应用服务器的不同的 properties集合 :
websphere:
java.naming.provider.url->iiop://websphere.machine.domain.com:900
java.naming.factory.initial ->com.ibm.websphere.naming.WsnInitialContextFactory
java.naming.factory.url.pkgs ->com.ibm.ws.naming
org.omg.CORBA.ORBClass->com.ibm.rmi.iiop.ORB
org.omg.CORBA.ORBSingletonClass->com.ibm.rmi.corba.ORBSingleton
javax.rmi.CORBA.UtilClass->com.ibm.rmi.javax.rmi.CORBA.Util
javax.rmi.CORBA.StubClass->com.ibm.rmi.javax.rmi.CORBA.StubDelegateImpl
javax.rmi.CORBA.PortableRemoteObjectClass->com.ibm.rmi.javax.rmi.PortableRemoteObject
weblogic:
java.naming.factory.initial -> weblogic.jndi.WLInitialContextFactory
java.naming.provider.url -> t3://localhost:7001
jboss:
ava.naming.factory.initial ->org.jnp.interfaces.NamingContextFactory
java.naming.factory.url.pkgs->org.jboss.naming.client
java.naming.provider.url ->jnp://10.0.0.18:1099
sunone IMQ ldap:
java.naming.provider.url -> ldap://localhost:389/dc=yusong,dc=com
java.naming.factory.initial -> com.sun.jndi.ldap.LdapCtxFactory
sunone Application Server:
java.naming.provider.url -> iiop://192.168.0.34:3700
java.naming.factory.initial -> com.sun.jndi.cosnaming.CNCtxFactory
oracle oc4j:
java.naming.factory.initial->com.evermind.server.ApplicationClientInitialContextFactory
java.naming.provider.url->ormi://localhost/bmpapp
发表评论
-
字符串分割--java中String.split()用法
2013-03-06 14:25 74147在java.lang包中有String.sp ... -
用 HttpServletResponseWrapper 实现 Etag 过滤器
2012-07-09 16:58 3757原文出处:http://blog.chenlb.com/200 ... -
Fitnesse使用
2012-05-05 13:27 23491Fitnesse 的使用 一,介绍 Fitnesse是一种 ... -
Customizing the new FitNesse parser
2012-05-05 13:13 2133FitNesse began its life using ... -
java application中内嵌ActiveX控件
2011-11-14 15:57 5516我这里用的是SWT/JFace开发application,SW ... -
Google Java Developer Tools Downloads
2011-08-09 00:04 2346WindowBuilder Pro原来叫WindowB ... -
Jalita
2011-08-06 00:49 1565Jalita (Java light terminal ada ... -
【转】用Java写字符终端界面
2011-07-29 13:13 2120终端界面GUI开源项目charva。 这个框架让你可以用开发 ... -
[转]mybatis下的分页,支持所有的数据库
2011-07-21 13:21 14838大 家都知道,mybatis的自带分页方法只是逻 ... -
Java framework for text- & console-based forms?
2011-07-21 01:06 1709charva jcurses JNA , ... -
JNA(Java Native Access)学习入门
2011-07-21 01:04 22610Java Native Access 项目 在 ... -
JAVA上加密算法的实现用例
2011-06-25 12:38 4882来源:www.ibm.com ... -
如何将GlassFish作为Windows服务运行
2011-05-18 23:21 2370本文档来自GlassFish官方网站,详细介绍了将 G ... -
JAVA UDP打洞必备知识点---NAT
2011-05-05 12:56 8685一、引言 RFCl631 ... -
Keystore概念,Keytool工具使用
2011-04-28 16:20 2902近来由于项目需要做Single Sign On, 研究了一 ... -
利用Eclipse Profile Plugin监控分析Tomcat性能
2011-04-18 16:14 3700目前新版本的Eclipse在启动应用服务器的时候有一个新的选 ... -
m2eclipse: Eclipse is running in a JRE, but a JDK is required
2011-02-04 23:43 2537Eclipse 安装了Maven插件,启动Eclipse ... -
利用JNative实现Java调用动态库
2010-10-18 00:43 2099由于项目要求,需要用J ... -
RHEL5支持大内存
2010-10-08 16:19 3002安装 RHEL 5 ,硬件为 4G 内存,安装完成 ... -
Windows Server 2003 和 Windows 2000 提供大内存支持
2010-10-08 16:19 1854本文介绍物理地址扩展 ...
相关推荐
- **最佳实践**:总结并分享在不同场景下使用JNDI Adapter的最佳实践,可以帮助用户避免常见问题,并充分利用JNDI的全部潜力。 综上所述,JNDI Adapter是Windchill系统架构中的重要组成部分,它不仅增强了系统的可...
总结,通过这个Java开发工作模板,我们不仅回顾了项目中的具体任务和技术,还对个人的技能进行了评估,明确了未来的发展方向。在IT行业,不断学习和进步是保持竞争力的关键,通过工作总结,我们可以更好地规划职业...
**LDAP技术概述** ...总结来说,LDAP是一种高效、灵活的目录服务协议,通过JNDI接口,Java开发者可以轻松地集成和利用LDAP功能。了解并熟练掌握这些知识点对于构建和维护大规模分布式系统至关重要。
然而,由于 X.500 不支持广泛使用的 TCP/IP 协议,它在个人电脑,尤其是 Windows 系统上的应用受到限制。为了解决这个问题, Lightweight Directory Access Protocol (LDAP) 应运而生。LDAP 是基于 X.500 标准设计的...
总结来说,卫生专业技术资格考试的考务信息管理系统是信息化时代考试管理的重要工具,它需要综合运用计算机网络技术、数据库技术、信息安全技术以及现代管理理念,以满足日益增长的考试组织和人才评价需求,推动卫生...
**技术挑战与经验总结** 在开发过程中可能会遇到的技术问题包括性能优化、安全防护(如SQL注入、XSS攻击)、跨域问题、并发控制等。对于这些问题,开发者需要采用适当的技术手段,如使用缓存提高响应速度,利用HTTPS...
总结,log4j2.17.2是应对Log4j2 RCE漏洞的重要更新,通过加强安全配置和限制危险功能,为Java应用程序提供了更坚固的安全屏障。对于依赖Log4j2的系统而言,及时升级至该版本是保障系统安全、防范潜在风险的有效手段...
- **功能模块设计**:分为用户模块(注册、登录、个人信息管理)、图书信息模块(添加、修改、删除)、借阅管理模块(借书、还书、续借)等。 - **数据库设计**:使用ER图进行实体关系建模,存储图书、用户、借阅...
3. 如果在Tomcat中以JNDI方式发布JbossCache,需要配置Tomcat的context.xml和JbossCache的JNDI配置。 4. 集成到Hibernate中,可以提高数据读取速度,避免频繁的数据库交互。 总结,SSH和SSI集成涉及到多个层次的...
根据给定文件的信息,本文将围绕JSP高级编程的相关...以上是对给定文件中提到的关键知识点的总结和详细解释,涵盖了从JavaBeans组件技术到JSP网络程序设计等多个方面,旨在为读者提供一个全面的JSP高级编程技术指南。
总结:本课程《第1讲Web开发简介和Tomcat服务器的安装与配置》旨在教授学生如何使用JavaWeb技术进行B/S架构的应用开发,包括基础的前端语言和动态Web技术,以及关键的服务器端工具Tomcat的使用。通过学习,学生将...
- **技术栈**:案例中提到的技术栈包括但不限于JSP、Servlet、JavaBean、Hibernate、JNDI、XML、Struts和JSTL等。这些技术通常用于Web应用程序的开发。 - **项目经验**: - **项目1**:“XXX公司OA系统”使用了MVC...
J2ME主要用于移动设备如手机和个人数字助理(PDA);而J2EE则是面向企业级应用程序的开发,支持构建复杂的分布式系统和Web应用。 #### 二、J2EE的学习起点 对于初学者而言,建议首先掌握J2SE的基础知识,这是J2EE...
4. **个人总结**:课程笔记整理详尽,便于回顾和复习,有助于巩固知识。 通过深入学习达内的J2EE课堂笔记和代码,可以系统性地理解和掌握J2EE技术体系,提升Java企业级应用开发的能力。对于寻找工作的朋友来说,这...
- **技术规范**:JSP(Java Server Pages)、JavaBean、Servlet、JDBC(Java Database Connectivity)、JMS(Java Message Service)、JNDI(Java Naming and Directory Interface)等。 - **框架**:Struts、Spring...
根据提供的简历模板和个人信息,我们可以总结出以下关键的IT知识点和技术能力: ### 个人基本信息 - **姓名**:Tom - **学历**:本科 - **性别**:男 - **年龄**:xx岁 - **专业**:计算机科学与技术 - **民族**:...
3. 经验总结法:结合个人开发经验,进行系统设计和分析。 4. 实证研究法:通过大量编码和测试,实现系统各项功能。 五、参考文献 本研究参考了涉及B/S架构、销售管理、客户行为分析等多个领域的硕士论文,以获取...
- **经验总结法**:结合个人经验和导师指导,对开发过程进行归纳和分析。 - **实证研究法**:通过实际编码和测试,验证和实现系统功能。 8. **参考文献**:列举的参考文献主要涉及基于B/S的管理系统设计、项目...
该示例可能会介绍如何使用Servlet和JSP来创建一个简单的Web应用,包括用户登录、显示个人信息等功能。这将涉及到Servlet如何接收HTTP请求、处理数据以及返回响应给客户端的过程。 #### 示例2:使用EJB进行业务逻辑...
- **JNDI/LDAP**:讨论命名和服务发现接口以及轻量目录访问协议。 - **RMI**:研究远程方法调用的基础和实现细节。 - **EJB**:介绍企业级Java Beans的作用域、生命周期和部署模型。 - **JMS**:分析Java消息...