【发布时间】:2014-04-29 12:31:06
【问题描述】:
我只想创建一个 Portlet 并在此 Portlet 中使用 EJB。
我正在使用 JBoss 7.1 和 Liferay 6.2。
我创建了一个 EJB 项目和一个 liferay 插件项目。
我只想从 EJB 调用一个方法,如下所示:
@Local
public class PortletController {
public PortletController() {
}
public String getUserName() {
return "foobar";
}
}
我的 portlet 尝试获取用户名,如下所示:
public class ABPortlet extends MVCPortlet {
private String userName;
@EJB
PortletController controller;
public ABPortlet() {}
public void doView(RenderRequest rr, RenderResponse rp) throws IOException, PortletException {
userName = controller.getUserName();
if(userName==null) {
userName = "nope";
}
rr.setAttribute("userName", userName);
super.doView(rr, rp);
}
}
我是不是已经做错了什么?我在一个教程中读到,如果 bean 在与 portlet 相同的 JRE 中运行,我可以在不查找的情况下访问本地 bean。
如何正确部署这两个项目?我将 EJB 项目导出为 jar 并将其作为依赖项添加到 portlet 项目中,但我刚刚在 doView 方法中得到了 NullpointerException,在这一行:
userName = controller.getUserName();
【问题讨论】: