我正在使用 JBoss 7.02 和 LifeRay Portal 6.1.0 GA1 开发 Java Portlet(扩展 GenericPortlet)。这是可以从 LifeRay 的发布档案中下载的捆绑包之一。
在部署过程中,调用 init() 方法时,getRequestDispatcher() 返回 null。以下是确切的错误消息:
09:22:15,972 错误 [org.apache.catalina.core.ContainerBase.[jboss.web].[default-host].[/my-portlet-name]](MSC 服务线程 1-15)映射期间出错: java.lang.NullPointerException
下面是我的 init() 方法的一个片段:
PortletConfig config = getPortletConfig();
PortletContext context = getPortletContext();
PortletRequestDispatcher normalView = context.getRequestDispatcher("/portlet.jsp");
作为一种临时解决方法,我已将所有getRequestDispatcher()
调用移至doView()
执行时没有问题的位置。我不明白为什么getRequestDispatcher()
在 doView 期间调用时可以找到 portlet.jsp,但在调用期间却找不到init()
我是否错过了可以解决此问题的其他方法的先前调用?这是一个已知的问题?
谢谢你的帮助。