【问题标题】:Injecting a remote EJB in a managedBean在 managedBean 中注入远程 EJB
【发布时间】:2014-01-15 14:04:16
【问题描述】:

自从 x 次以来,我一直在思考如何在 JSF 应用程序的托管 bean 中注入远程 EJB。 我已经创建了一个简单的 java 应用程序,并且我已经通过查找来注入远程 EJB ......并且它可以工作。 但是当我来到网络应用程序时,我真的不知道该怎么办!!!

这是我的 EJB 代码:

@Stateless
public class Hello implements HelloRemote {

@Override
public String sayHello(String name) {

    return "Hello, "+name;
}
}

远程接口是

@Remote
public interface HelloRemote {

public String sayHello(String name);
}

在我的 web 应用程序中,我创建了我管理的 bean:

@ManagedBean
 public class MyBean {
   @EJB
   HelloRemote helloRemote;

}

但它不起作用:(

【问题讨论】:

  • 请添加详细信息,您在服务器日志中遇到什么错误?

标签: jsf ejb-3.0


【解决方案1】:

如果你想在本地公开 EJB,你必须在接口上使用@Local

如果您想在本地和远程公开,您必须创建 2 个接口,一个使用@Local,一个使用@Remote

如果您的 JSF ManagedBean(MyBean) 在本地运行,即,与 EJB 在同一应用服务器上运行,您可以使用 @EJB 直接注入它。

如果您的 JSF ManagedBean 在不同的服务器上运行,您必须使用 JNDI 注册表 来查找和访问 EJB。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-05-11
    • 1970-01-01
    • 2012-01-01
    • 1970-01-01
    • 2015-11-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多