gpt4 book ai didi

ejb-3.0 - JBoss AS 7.1.1 JNDI 绑定(bind)

转载 作者:行者123 更新时间:2023-12-04 23:26:38 27 4
gpt4 key购买 nike

当我部署一个典型的 EJB3 对我的 进行标准@Stateless、@Remote 注释的bean JBoss AS 7.1.1 我看到以下 JNDI 服务器控制台输出上的绑定(bind):

22:31:43,209 INFO [org.jboss.as.ejb3.deployment.processors.EjbJndiBindingsDeploymentUnitProcessor]    
(MSC service thread 1-2) JNDI bindings for session bean named HelloEJB3Bean
in deployment unit deployment "hello.jar" are as follows:

java:global/hello/HelloEJB3Bean!archetypesEjb3.IHelloEJB3
java:app/hello/HelloEJB3Bean!archetypesEjb3.IHelloEJB3
java:module/HelloEJB3Bean!archetypesEjb3.IHelloEJB3
java:jboss/exported/hello/HelloEJB3Bean!archetypesEjb3.IHelloEJB3
java:global/hello/HelloEJB3Bean
java:app/hello/HelloEJB3Bean
java:module/HelloEJB3Bean

但是,然后我使用 从独立的 Java 类(使用改编自 the JBoss AS 7.1.1 quickstart tutorials 的代码)中找到并调用 bean。 JNDI 以下类型的字符串:
String jndiName = "ejb:" + appName + "/"      + moduleName + "/" + distinctName
+ "/" + beanName + "!" + viewClassName
+ (stateful?"?stateful":"");

(不属于上述命名空间/绑定(bind)之一)。
  • 为什么提供了这么多 JNDI 绑定(bind),如果我使用其中的一个或另一个会有什么不同?
  • 有没有标准的方法,例如也许使用 ejb:/命名空间(因为这是上面给出的快速入门教程中出现的内容)
  • 为什么是 ejb:/绑定(bind)(显然存在,因为那是我用来与我的 bean 交谈的内容)没有在 JBoss AS 7.1.1 输出中报告?
  • 最佳答案

    ejb:/是 JBoss 用于 的专有 namespace 远程 客户。

    它是在 JBoss AS 7.x 中引入的,它取代了事实上的标准远程 JNDI 方式,即使用与本地相同的 JNDI 命名空间,但为指定远程服务器所在位置的初始上下文提供属性。
    ejb:/的原因|存在是双重的。根据 JBoss 的说法,在 Java EE 规范中没有指定事实上的远程 JNDI 访问方式,因此没有理由坚持它。 JBoss AS 7 的目标之一是研究不同的做事方式,并且由于其规范漏洞,远程 EJB 只是在这里提供了机会。

    ejb:/命名空间,据推测远程“驱动程序”更容易拦截对远程 EJB bean 的请求,同时确保只能请求 EJB bean,而不是说 JMS 队列(也没有指定如何远程获取它们)和所有数据源中最糟糕的。

    关于ejb-3.0 - JBoss AS 7.1.1 JNDI 绑定(bind),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11872822/

    27 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com