我如何配置 JNDI 查找的模块和应用程序名称
在 EJB 3.1 中,可以使用不同的查找名称进行 JNDI 查找:
java:global[/<app-name>]/<module-name>/<bean-name>!<fully-qualifiedbean interface-name>
java:global[/<app-name>]/<module-name>/<bean-name>
java:app/<module-name>/<bean-name>!<fully-qualified-bean-interface-name>
java:app/<module-name>/<bean-name>
java:module/<bean-name>!<fully-qualified-bean-interface-name>
java:module/<bean-name>
在我的 JavaEE 6 项目(使用 Maven 2、Netbeans 6 和 Glassfish v3)中,应用程序名称是 X-Snapshot.ear,EJB 模块是 Y-Snapshot.jar 。我如何配置这个 Maven 项目以使用另一个应用程序和模块名称?当此名称更改时,我不想更改所有 JNDI 查找!那么是否可以为 JNDI LookUps 配置应用程序和模块名称?
In EJB 3.1 JNDI Lookups can be made with different Lookup-Names:
java:global[/<app-name>]/<module-name>/<bean-name>!<fully-qualifiedbean interface-name>
java:global[/<app-name>]/<module-name>/<bean-name>
java:app/<module-name>/<bean-name>!<fully-qualified-bean-interface-name>
java:app/<module-name>/<bean-name>
java:module/<bean-name>!<fully-qualified-bean-interface-name>
java:module/<bean-name>
In my JavaEE 6 Project (with Maven 2, Netbeans 6 and Glassfish v3) the Application name is X-Snapshot.ear and the EJB-Module is Y-Snapshot.jar. How can i config this maven project to use another application and module name? I don't wnat to change all JNDI Lookups when this names change!! So is it possible to config application and module names for JNDI LookUps?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
简单的方法
Maven EAR 插件允许 自定义模块文件名,您可以使用
project.build.finalName
设置最终名称或 EAR。更好的方法
覆盖
application.xml
和中的
。引用 EJB 3.1 中的可移植全局 JNDI 名称:
和
分别是 ejb-jar.xmlNaive approach
The Maven EAR Plugin allows to Customize A Module Filename and you can set the final name or the EAR using
project.build.finalName
.Much better approach
Override the
<application-name>
and the<module-name>
in theapplication.xml
and theejb-jar.xml
respectively. Quoting Portable Global JNDI name in EJB 3.1:可以在运行时通过 JNDI 查找应用程序名称和模块名称:
尽管您可以在应用程序部署描述符中配置应用程序名称和模块名称 如上所述,这些名称仍然可以在部署时被覆盖(根据 Java EE 规范,如下所示),因此最好不要在您的应用程序中硬编码这些值应用程序代码。
The application name and module names can be looked up at runtime via JNDI:
Although you can configure the application-name and module-name in your application deployment descriptor as described, these names can still be overridden at deployment-time (per the Java EE specification, as indicated below), so it's best not to hard-code these values in your application code.