Websphere 7 中的 EJB3 beans JNDI 查找
我创建了一个带有 Web 项目、ejb3 项目和 ejb 客户端的 EAR。我可以通过 servlet 中的注入来调用 bean 方法。 我计划使用 ServiceDelegate 它是一个 pojo 来处理 bean 调用。因此,我将从 servlet 中调用委托,委托将调用适当的 bean 及其方法。
但我无法获取 Web 项目中的委托类中的 bean 引用。 @EJB 注释返回空引用。因此,我尝试使用 java:comp/env/EARname/BeanName 进行 JNDI 查找。但我总是以命名例外告终。
在上下文“java:”中找不到名称 comp/env/EARname。
请建议我在 Websphere 7 服务器上通过 JNDI 调用 ejb3 beans 的正确方法。
I have created an EAR with a web project, ejb3 project and the ejb client. I'm able to call the bean methods via injection in the servlet.
I'm planning to use a ServiceDelegate which is a pojo to handle the bean invocation. So I'll call the delegate from my servlet and the delegate will call the appropriate beans and its methods.
But I'm unable to get the bean references in the delegate class which is in the web project. @EJB annotation returned a null reference. So I tried a JNDI lookup with java:comp/env/EARname/BeanName. But I always end up with naming exceptions.
Name comp/env/EARname not found in context "java:".
Please suggest me the correct way to call ejb3 beans via JNDI on Websphere 7 server.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
Java EE 5 和 6 中的依赖注入仅适用于托管类。在 servlet 容器中,少数类型的类支持这一点,但并非所有 POJO 都支持(不幸的是)。
Servlet 规范 2.5 阐明了容器必须为其注入依赖项(如果存在)的类:
组件类型:Servlet
实现以下接口的类
< strong>组件类型:过滤器
实现以下接口的类:
组件类型:监听器
实现以下接口的类 >:
因此,如果您必须通过依赖项查找来解决问题,您可以可以采用以下任一策略:
Dependency injection in Java EE 5 and 6, works only for managed classes. In the servlet container, this is supported in a few types of classes, and not in all POJOs (unfortunately).
The Servlet Spec 2.5 sheds light on the classes for which the container must inject dependencies if they are present:
Component Type: Servlets
Classes implementing the following interfaces
Component Type: Filters
Classes implementing the following interfaces:
Component Type: Listeners
Classes implementing the following interfaces:
Therefore, if you have to resolve the issue with dependency lookups, you could adopt either of the following strategies: