栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

EJB客户端如何在没有URL的情况下定位EJB服务器?

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

EJB客户端如何在没有URL的情况下定位EJB服务器?

这里有两件事。

第一件事是Java EE中未指定获取对远程EJB的引用的方式。您无法确定单个供应商认为应该如何完成。

尽管JNDI是为此目的使用的事实上的标准,但即使此本身也不是强制性的。

示例:JBoss直到AS7

在直到AS 7的JBoss AS中,使用以下序列获取远程引用:

Properties env = new Properties();env.put(Context.INITIAL_CONTEXT_FACTORY, "org.jnp.interfaces.NamingContextFactory");env.put(Context.URL_PKG_PREFIXES, "org.jboss.naming:org.jnp.interfaces");env.put(Context.PROVIDER_URL, "jnp://myserver.example.com:1099");InitialContext context = new InitialContext(env);Bean bean = (Bean) context.lookup("myear/MyBean/remote");

在此,将远程服务器的URL提供给初始上下文,并从该上下文中检索Bean。 (请注意,您必须 NOT
:这里的前缀,否则将通过JNDI被拦截和就地解决,尽管做了查找在远程情况下加入著名的“/ JAVA”)

由于如上所述该方法不是标准化的,因此单个供应商可以在实施版本之间完全更改它。即使是针对相同Java EE版本的实现。

示例:JBoss AS7

在JBoss AS
7中,JBoss希望脱离JNDI(因为未指定必须使用JNDI),现在它大致以下列方式发生:

首先,您需要

jboss-ejb-client.properties
使用以下上下文将文件放在类路径中:

endpoint.name = client-endpointremote.connectionprovider.create.options.org.xnio.Options.SSL_ENABLED = falseremote.connections = defaultremote.connection.default.host = myserver.example.comremote.connection.default.port = 4447remote.connection.default.connect.options.org.xnio.Options.SASL_POLICY_NOANonYMOUS = false

并使用如下代码:

Properties env = new Properties();env.put(Context.URL_PKG_PREFIXES, "org.jboss.ejb.client.naming");InitialContext context = new InitialContext(env);Bean bean = (Bean) context.lookup("ejb:/myear/mymodule/MyBean!com.example.Bean");

因此,从代码中看,似乎没有给出URL,但是它静态地隐藏在配置文件中。


应用程序客户端容器

今天,我发现了另一个使用Netbeans 7,Java EE 6和GlassFish 3的示例。客户端代码[…]

这是另一回事。所展示的是所谓的“ 应用程序客户端容器” (又名ACC)。

这与上面的示例不同,在上面的示例中,Java SE应用程序使用JNDI与远程服务器联系。在Java
EE中,应用程序客户端容器有点晦涩难懂。这个想法似乎是您从服务器(如Applet或Java Web
Start应用程序)动态下载客户端代码,然后神奇地“知道”其起源。在主类中,对(静态)注入的支持非常有限,您可以使用它直接注入远程bean。

应用程序客户端容器是Java
EE早期的想法,据我所知,它从来没有受到太多关注。这些年来,它在最初构想之后从未取得太大进步。由于它仍然需要完成大量特定于供应商的工作,因此我认为大多数人都不会为它而烦恼,而只是使用JNDI。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/498033.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号