使用 JNDI 从外部库获取对 EJB 的引用
我们有一些外部库,可以在 Glassfish 3.1 上的 J2EE 应用程序中使用。这些库允许为某些事件注册处理程序。要求是这些处理程序应在主应用程序中使用 EJB。
我们的想法是使用 JNDI 获取对 EJB 的引用,然后调用这些 EJB 上的方法来创建这些自定义处理程序。这是执行此操作的正确方法吗?
We have some external libraries which we use in a J2EE application on Glassfish 3.1. Those libraries allow registering handlers for certain events. The requirement is that those handlers should make use of EJBs in the main application.
Our idea was to make those custom handlers in a way that they use JNDI to fetch references to EJBs, and then call methods on those EJBs. Is this the proper way to do this?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
在不了解您的具体用例的情况下,我可以肯定这可能是访问包含离散业务逻辑的公共资源(在您的情况下为 EJB)的有效方法。
常见的实现涉及 服务定位器 来处理 jndi 查找并返回引用或直接调用位于一个或多个无状态会话 Bean 中的业务逻辑。
例如,此模式经常用于使用共享连接或实体管理器查询对象或将对象持久保存到数据库,或者访问池工厂,该工厂在多线程环境中管理池资源分配。
Without knowing your specific use case, I can affirm that can be an effective way to get access to common resources (EJBs in your case) containing discrete business logic.
A common implementation involves a Service Locator to handle the jndi lookup and return a reference or make a direct call to business logic located in one or more Stateless Session Beans.
This pattern is often used, for instance, to query or persist objects to a database using a shared connection or entity manager, or gain access to a pooled factory which governs pooled resource allotment in a multi-threaded environment.