跨应用程序服务器的mappedName 始终相同?
我有一个具有一些属性的无状态 bean:
- 它是一个 EJB3
- 类 AddressFacade
- 实现了 AddressFacadeRemote
- 它位于 ejb-jar (MyJAR.jar) 中
- 它位于 EAR (MyEAR) 中。
我的应用程序服务器 (Weblogic) 生成了此名称 (jndiName/mappedName):
MyEARMyJAR_jarAddressFacade_AddressFacadeRemote
我无法使用注入,因此我将使用此名称进行查找。
问题是:如果我维护相同的 EAR、JAR、类和接口名称,这个名称总是相同的吗?或者它可以从应用程序服务器更改?
I have a stateless bean with some properties:
- It's a EJB3
- class AddressFacade
- implements AddressFacadeRemote
- it's inside a ejb-jar (MyJAR.jar)
- it's in a EAR (MyEAR).
My application server (Weblogic) generated this name (jndiName/mappedName):
MyEARMyJAR_jarAddressFacade_AddressFacadeRemote
I can't use injection, so I'll make a lookup with this name.
The question is: this name always will be the same if I maintain the same EAR,JAR,Class and interface name? Or it can change from application servers?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
JNDI 名称在 Java EE 5 中未标准化,并且会从一个应用程序服务器更改为另一个应用程序服务器。 Adam Bien 写了一篇很好的文章来说明这一点:
处理此问题的一种不错的方法是使用 ServiceLocator 和“可插入”应用程序服务器特定策略。查看ServiceLocator、JNDI 命名助手和 Java EE 5 。
在 Java EE 6 中,问题得到了解决,我们终于有了可移植全局 JNDI 名称。
JNDI names are not standardized in Java EE 5 and will change from one application server to the other. Adam Bien wrote a nice post illustrating this:
One decent way to handle this is to use a
ServiceLocator
and "pluggable" application server specific strategies. Have a look at at ServiceLocator, JNDI Naming Helper and Java EE 5.In Java EE 6, things are fixed and we finally have Portable Global JNDI Names.