java消费者中url找不到_java – EJB客户端如何找不到没有url的EJB服务器?

这里有两件事情.

首先,在Java EE中没有指定获取对远程EJB的引用的方式.您是否得到个人供应商如何认为应该做的事情的怜悯.

虽然JNDI是用于此的事实上的标准,尽管这本身并不是强制的.

示例:JBoss直到AS7

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

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. (请注意,您不能在此处添加公知的“java:/”前缀,否则将被JNDI拦截并在本地解析,尽管在远程上下文中进行查找)

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

示例:JBoss AS7

在JBoss AS 7中,JBoss想要离开JNDI(因为没有指定JNDI必须被使用),现在它发生在大约following way:

您将首先需要使用以下上下文将jboss-ejb-client.properties文件放在您的类路径上:

endpoint.name = client-endpoint

remote.connectionprovider.create.options.org.xnio.Options.SSL_ENABLED = false

remote.connections = default

remote.connection.default.host = myserver.example.com

remote.connection.default.port = 4447

remote.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,但它是静态隐藏在一个配置文件中.

应用程序客户端容器

Today I have found another example where Netbeans 7,Java EE 6,and GlassFish 3 are used. The client side code […]

这是另一回事.所示的是所谓的应用程序客户端容器(也称为ACC).

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

应用程序客户端容器是Java EE早期的一个想法,据我所知,从未受到关注.经过这些年,它的初期概念从未发生过.由于它仍然需要大量的供应商特定的事情来做,所以我认为大多数人不用打扰它,只使用JNDI.

@H_301_33@

@H_301_33@

相关文章

总结

如果觉得编程之家网站内容还不错,欢迎将编程之家网站推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。

如您喜欢交流学习经验,点击链接加入交流1群:1065694478(已满)交流2群:163560250

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值