Context initial = new InitialContext();
Object objref = initial.lookup("java:comp/env/ejb/SimpleConverter");

一般情况下,intial.lookup("")中的参数就是你的JNDI名称。但是用的应用服务器,是把JNDI名放到java:comp/env/ejb/后面的。两种方式都没有错。比如:
TomCat5.0中使用的是Object objref = initial.lookup("java:comp/env/ejb/SimpleConverter"); WebLogic6.1中使用的是:
Object objref = initial.lookup("HelloHome");

InitialContext的构造方法主要是准备JNDI的访问环境,如果不加参数,那就意味着是用本地匿名访问,也就是说,用户角色是匿名,ctx.PROVIDER_URL是LOCALHOST
所以,对于本地测试(并且JNDI资源没有设置安全属性)这两段代码没有区别,如果要访问远程的JNDI资源,就必须用饱含JNDI环境参数Hashtable初始化InitialContext。

必要的环境参数如:
Context.INITIAL_CONTEXT_FACTORY//连接工厂
Context.PROVIDER_URL//访问连接
Context.SECURITY_PRINCIPAL//安全用户
Context.SECURITY_CREDENTIALS//用户密码

EJBLocalHome->本地主接口,负责控制Bean的整个生命周期,另外,可以看作是
生成Bean引用的
“工厂“类。

EJBLocalObject->本地组件接口,定义Bean要向客户提供的业务方法的签名。

本地接口是一种轻量级代理,语法更简单(直接类型转换,不需要narrow),

开销更小,速度更快。规范说可以在同一JVM内使用,我只在同一个EJB包内用过。
EJBLocalHome+EJBLocalObject   vs   EJBHome+EJBObject:  
  前一对不是远程调用,省时省力   
Home   vs   Object:  
  前者是Factory模式,用来生成后者;后者是proxy模式,用来暴露商业逻辑

InitialContext context = new InitialContext();          
Object ref = context.lookup(JNDIname);          
accHome = (AccountHome)PortableRemoteObject.narrow(ref,AccountHome.class);      
ejbObject = accHome.create();  
  上面即是ejb实例的一个很常见的创建过程  
理解如下:  
   上面的创建过程是通过远程接口创建ejb实例的过程:即先通过JNDIname找到ejb本地接
口的一个实例,然后再通过本地接口的实例创建ejb实例,PortableRemoteObject.narrow(ref,AccountHome.class);
实际上是一个强制转换,由于是远程强制转换,所以要用PortableRemoteObject.narrow()方法。

// 创建一个JNDI naming contest
           Context initial = new InitialContext();
          
           // 从JNDI 中以MyConverter 名子来定位到对象(在发布名称指定了JNDI名称)
//         Object objref = initial.lookup("java:comp/env/ejb/ConverterEJB");
           Object objref = initial.lookup("MyConverter");
          
           // 通过objref 得到ConverterHome 本地接口
           ConverterHome home = (ConverterHome)PortableRemoteObject.narrow(
                   objref, ConverterHome.class);
          
           // 再由Home 接口的create 方法来创建一个服务器上的EJB实例
           Converter currencyConverter = home.create();
          
           // 调用EJB 中的方法
           代码省略

有关InitialContext()的困惑 转相关推荐

  1. 有关InitialContext()的困惑

    Context initial = new InitialContext(); Object objref = initial.lookup("java:comp/env/ejb/Simpl ...

  2. 【干货】NLP中对困惑度感到困惑?

    视学算法推荐 作者:时晴 来自:炼丹笔记 困惑度(Perplexity)在NLP中是个最流行的评估指标,它用于评估语言模型学的到底有多好.但是很多炼丹师可能至今对"困惑度"依然感到 ...

  3. 《Python数据分析与挖掘实战》一第1章 数据挖掘基础1.1 某知名连锁餐饮企业的困惑...

    本节书摘来自华章出版社<Python数据分析与挖掘实战>一书中的第1章,第1.1节,作者 张良均 王路 谭立云 苏剑林,更多章节内容可以访问云栖社区"华章计算机"公众号 ...

  4. 一位39岁程序员的困惑:知道得越多编程越慢怎么办?

    Zilk1988 年 14 岁时就开始编程,此后尝试过几种职业,最终还是在 1997 年决定成为职业程序员(又称码农),现在已经 39 岁,对此选择依然无怨无悔. 但是后来他发现一个问题,自己的经验越 ...

  5. 困惑度 (perplexity)

    困惑度 (perplexity) 在自然语言处理中,对于一个语言模型,一般用困惑度来衡量它的好坏,困惑度越低,说明语言模型面对一句话感到困惑的程度越低,语言模型就越好. 对于LDA模型,最常用的两个评 ...

  6. 类的包访问权限:《Java编程思想》中一段话的困惑

    类的包访问权限:<Java编程思想>中一段话的困惑 在<java编程思想第三版>(陈昊鹏 饶若楠等译)的第五章隐藏具体实现中,5.4节的最后一段话是: "正如前面所提 ...

  7. TranslateMessage()的困惑

    对字符信息的困惑,当某键按下产生WM_KEYUP消息,经过TranslateMessage(&Msg)后:DispatchMessage()是如何动作的呢?而完整的信息是在WM_KEYDOWN ...

  8. C#进阶系列——WebApi 接口参数不再困惑:传参详解

    看这边文章时的疑惑是:WebApi中的参数加了[FromBody],不知所以然,就百度了下,看到了以下文章,和大家分享下: 原文链接:http://www.cnblogs.com/landeanfen ...

  9. 【星辰傀儡线·命运环·卷二 尘埃】 5 困惑

    五 困惑 修仑手中的匕首铛的一声掉在翡翠琴上. 她还是太心急了.在这诡谲的阿卡城中,提前暴露实力是一件非常愚蠢的事情.她以为破了龙破斩,凭完美体就能够压制住躁动的各方? 这只会促使各方联合起来对付她. ...

最新文章

  1. 舒工给您娓娓道来:2019-nCoV,教室布局筛查追溯系统算法解密!
  2. Python命令行可视化库
  3. python实习做什么工作-面试python实习工作需要注意哪些事项???
  4. python常用命令大全-Python常用命令之集合
  5. media适配css
  6. 计算机与网络应用基础知识下上机考试,计算机应用基础知识考试
  7. icpc网络赛第二场K Meal
  8. azm335x 串口配置
  9. 优酷视频怎么提交意见反馈
  10. 探探经营范围变更:新增演出经纪和电信业务
  11. 【免费】某平台3980元大数据课程免费下载,仅此1次
  12. 什么是http服务器
  13. 小波系数等值线图和小波方差图绘制教学
  14. paper:DeepAR: Probabilistic forecasting with autoregressive recurrent networks DeepAR模型
  15. WiFI Display介绍
  16. 【python教程入门学习】Python黑科技:WiFi破解
  17. ibm服务器型号规则,IBM服务器型号是怎么命名的?
  18. C语言判断日期有效性以及根据年月日输出星期几
  19. 云米涉嫌专利侵权是小米生态链的整体隐患
  20. weka java 分类算法_使用Weka快速实践机器学习算法

热门文章

  1. 第4次Python作业 吴为橦
  2. 影响GPS手机定位精度的五大因素
  3. 我用python画了个福
  4. OAI数据集 | 申请Ing
  5. order by 导致分页出现重复数据问题
  6. 招标服务费计算小程序(2020-12-11)重写主函数加入循环
  7. 今天收到gmail邀请!
  8. 三重优化,用实践解读电商平台 GMV 增长背后的故事
  9. 小程序存在的意义到底是什么?
  10. 这些技术后遗症,正在改变我们的性格