Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/visual-studio-code/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
JBoss 7.1中的InitialContext.lookup()参数_Jboss_Jboss7.x_Ejb 3.1_Initial Context - Fatal编程技术网

JBoss 7.1中的InitialContext.lookup()参数

JBoss 7.1中的InitialContext.lookup()参数,jboss,jboss7.x,ejb-3.1,initial-context,Jboss,Jboss7.x,Ejb 3.1,Initial Context,我是EJB3.1的新手,尝试了解JBoss应用服务器7.1的一些基础知识 目前,我陷入了一个非常基本的问题。当服务器上的一个bean想要使用另一个bean时,我需要使用InitialContext.lookup()方法。如果我查阅文献,我会发现这样的电话: TheBean = (<Interface>) new InitialContext().lookup("<NameOfTheBean>/local"); 经过数小时的寻找,我找到了使用另一个调用的代码示例,如下所示

我是EJB3.1的新手,尝试了解JBoss应用服务器7.1的一些基础知识

目前,我陷入了一个非常基本的问题。当服务器上的一个bean想要使用另一个bean时,我需要使用InitialContext.lookup()方法。如果我查阅文献,我会发现这样的电话:

TheBean = (<Interface>) new InitialContext().lookup("<NameOfTheBean>/local");
经过数小时的寻找,我找到了使用另一个调用的代码示例,如下所示:

TheBean = (<Interface>) new InitialContext().lookup("ejb:/<Package>//<NameOfTheBean>!<Package>.<Interface>");
TheBean=()新建InitialContext().lookup(“ejb:///!”);
这个解决方案对我有效,但问题是为什么?有人知道为什么第一个调用产生异常而第二个调用工作正常吗


非常感谢

为什么?不同版本的JBoss在JNDI命名空间中使用不同的默认名称部署bean

  ctx.lookup("BeanName/local")
对于JBoss 4.x.x及更高版本是正确的,但对于JBoss v7则不然。 您可以在JB7的server.log中看到bean如何映射到JNDI名称, 例如(参见java:/jboss/exported/…以及它如何对应于您的第二个连续调用):

13:57:05550信息[org.jboss.as.ejb3.deployment.processors.ejbjndibbindingsDeploymentUnitProcessor](MSC服务线程1-4)部署单元部署“navi-ejb3.jar”中名为ProductionHistoryBean的会话bean的JNDI绑定如下: java:global/navi-ejb3/ProductionHistoryBean!navi.ejb3.production.history .ProductionHistoryRemote java:app/navi-ejb3/ProductionHistoryBean!navi.ejb3.production.history.Pr 生产历史远程 java:module/ProductionHistoryBean!navi.ejb3.production.history.Productio 历史记忆 java:jboss/exported/navi-ejb3/ProductionHistoryBean!navi.ejb3.production .history.ProductionHistoryRemote java:global/navi-ejb3/ProductionHistoryBean java:app/navi-ejb3/ProductionHistoryBean java:module/ProductionHistoryBean
您真的需要JNDI查找吗?
@EJB
也能正常工作吗?不知道他们改变了“调用”bean的方式。谢谢,我明白!
  ctx.lookup("BeanName/local")
13:57:05,550 INFO [org.jboss.as.ejb3.deployment.processors.EjbJndiBindingsDeploymentUnitProcessor] (MSC service thread 1-4) JNDI bindings for session bean named ProductionHistoryBean in deployment unit deployment "navi-ejb3.jar" are as follows: java:global/navi-ejb3/ProductionHistoryBean!navi.ejb3.production.history .ProductionHistoryRemote java:app/navi-ejb3/ProductionHistoryBean!navi.ejb3.production.history.Pr oductionHistoryRemote java:module/ProductionHistoryBean!navi.ejb3.production.history.Productio nHistoryRemote java:jboss/exported/navi-ejb3/ProductionHistoryBean!navi.ejb3.production .history.ProductionHistoryRemote java:global/navi-ejb3/ProductionHistoryBean java:app/navi-ejb3/ProductionHistoryBean java:module/ProductionHistoryBean