我正在尝试从另一个 EJB Facade 调用方法,但遇到一些错误,然后我请求您帮助以正确的方式执行此操作。我将发布当前代码来尝试解释。
JSF Bean 前端对象开始调用序列:
@RequestScoped
public class FrontEndBean {
@EJB
private SomeFacade someFacade;
public String submit() {
MyEntityObject myobj = new MyEntityObject();
myobj.setStringProperty("somestring");
someFacade.businessMethodOnSomeFacade(myobj);
}
}
第一个 Façade 源代码如下所示:
@Stateless
public class SomeFacade {
@EJB
private AnotherFacade anotherFacade;
public void businessMethodOnSomeFacade(MyEntityObject obj) {
if (obj.getStringProperty() != null) {
anotherFacade.businessMethodOnAnotherFacade(obj);
}
}
}
另一个外观:
@Stateless
public class AnotherFacade {
public void businessMethodOnAnotherFacade(MyEntityObject obj) {
if (obj.getStringProperty().equals("somestring")) { // null pointer exception
}
}
}
正确吗?我可以使用 @EJB 从另一个 EJB 外观调用吗?如果不是,正确的方法是什么?
是的,一切都是正确的。您可以注入(inject)任何您喜欢的 EJB。
我是一名优秀的程序员,十分优秀!