我正在使用Liferay
的最新社区版本,即6.1.0-ce-ga1和Tomcat 7
。
从这个版本开始,当我部署Liferay portlet时,我经常会遇到这个错误。
我错过了什么吗?对于非法语人士,它基本上说缺少JSP文件。
信息:
相关代码:
PortletRequestDispatcher rd = getPortletContext().getRequestDispatcher(
"/jsp/EditorPortlet.jsp"");
rd.include(request, response);
错误[render_portlet_jsp:154] javax.servlet.ServletException:Le fichier“/jsp/EditorPortlet.jsp”n'apasététrouvé 在org.apache.jasper.servlet.JspServlet.handleMissingResource(JspServlet.java:412) at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:379) 在org.apache.jasper.servlet.JspServlet.service(JspServlet.java:334) 在javax.servlet.http.HttpServlet.service(HttpServlet.java:722) 在org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305) 在org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210) 在com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(InvokerFilterChain.java:72) 在com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(InvokerFilterChain.java:113) 在com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilter.doFilter(InvokerFilter.java:70) 在org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243) 在org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210) 在org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:684) 在org.apache.catalina.core.ApplicationDispatcher.doInclude(ApplicationDispatcher.java:593) 在org.apache.catalina.core.ApplicationDispatcher.include(ApplicationDispatcher.java:530) at com.liferay.portlet.PortletRequestDispatcherImpl.dispatch(PortletRequestDispatcherImpl.java:316) at com.liferay.portlet.PortletRequestDispatcherImpl.include(PortletRequestDispatcherImpl.java:134) 在com.gui.portlet.Portlet.doViewPortlet(Portlet.java:194) 在com.gui.portlet.Portlet.doView(Portlet.java:148) 在com.app.management.model.server.portlet.Portlet.doView(Portlet.java:35) 在javax.portlet.GenericPortlet.doDispatch(GenericPortlet.java:328)
答案 0 :(得分:0)
通过查看异常跟踪,我认为您已经创建了一个portlet,并且在该特定portlet的Portlet.java类“doView()
方法中,您将请求转发给EditorPortlet.jsp
,该请求未创建或丢失。
如果您还没有直接转发请求,那么您必须将该部分放在portlet.xml中作为init-param (view-template)
答案 1 :(得分:0)
如果您的文件位于/WEB-INF/jsp/EditorPortlet.jsp
,则必须发送到该文件,而不是/jsp/EditorPortlet.jsp
- 您是否尝试过?
根据您转发的上下文,它可能与jsp/EditorPortlet.jsp
一起使用(请注意缺少的根斜杠,只是为了尝试解释它之前可能有效的原因)
而且,可能不是这里的情况,但是为了完整性,正如我从古代过去记得的那样:
我已经看到tomcat甚至在Windows上尊重文件名的大小写。由于我已经不再在Windows上开发很长一段时间了,我不在乎行为是否可配置,但鉴于Windows不尊重大写,将名称更改为“同名”并不容易“使用不同的大写字母(当时我必须完全重命名文件,然后将其重命名为正确的大写字母)。