2012-06-14 42 views
0

我正在使用Liferay的最新社区版本6.1.0-ce-ga1和Tomcat 7Liferay的Tomcat说JSP文件丢失

自从这个版本,当我部署我的Liferay portlet时,我经常会遇到这个错误。

我错过了什么吗?对于非法语者来说,它基本上说JSP文件丢失了。

相关信息:

  • 我的JSP文件位于/jsp/EditorPortlet.jsp
  • 当使用调度员,我用/jsp/EditorPortlet.jsp为路径
  • 我不会每次都得到这个错误。如果我重新部署我的.war,有时它可以解决问题。

相关的代码:

PortletRequestDispatcher rd = getPortletContext().getRequestDispatcher(
      "/jsp/EditorPortlet.jsp""); 
rd.include(request, response); 

ERROR [render_portlet_jsp:154] javax.servlet.ServletException:乐fichier “/jsp/EditorPortlet.jsp” n'a PAS ETEtrouvé 在org.apache.jasper.servlet.JspServlet.handleMissingResource(JspServlet.java:412) at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:379) at org.apache.jasper.servlet.JspServlet。服务(JspServlet.java:334) at org.apache.catalina.core.ApplicationFilterChain的org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305) (javax.servlet.http.HttpServlet.service(HttpServlet.java:722) )。 doFilter(ApplicationFilterChain.java:210) at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(InvokerFilterChain.java:72) at 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) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilt erChain.java:210) 在org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:684) 在org.apache.catalina.core.ApplicationDispatcher.doInclude(ApplicationDispatcher.java:593) 在有机apache.catalina.core.ApplicationDispatcher.include(ApplicationDispatcher.java:530) 在com.liferay.portlet.PortletRequestDispatcherImpl.dispatch(PortletRequestDispatcherImpl.java:316) 在com.liferay.portlet.PortletRequestDispatcherImpl.include(PortletRequestDispatcherImpl.java: 134) at com.gui.portlet.Portlet.doViewPortlet(Portlet.java:194) at com.gui.portlet.Portlet.doView(Portlet.java:148) at com.app.management.model.server。 portlet.Portlet.doView(Portlet.java:35) at javax.portlet.Gen ericPortlet.doDispatch(GenericPortlet.java:328)

回答

0

通过查看异常跟踪,我认为您已经创建了一个portlet,并且在该特定的portlet的Portlet中。java类'doView()方法,您正在转发请求到EditorPortlet.jsp,这不是创建或丢失。

如果您还没有直接转发请求,那么你一定已经把那部分在portlet.xml作为一个在init-param (view-template)

+0

我使用调度程序将请求转发到JSP文件。 JSP文件存在于war文件中。我正在阅读JSR-168规范,看看我是否做错了什么。 –

+0

请提供文件路径以及您在调度员 –

+0

中提供的路径,JSP文件位于'/ WEB-INF/jsp/EditorPortlet.jsp'中,我在调度程序中使用的路径是'/ jsp/EditorPortlet'试试 –

0

如果你的文件是/WEB-INF/jsp/EditorPortlet.jsp,你不得不派遣到文件,而不是/jsp/EditorPortlet.jsp - 你尝试过吗?

根据从那里你前进,它可能与jsp/EditorPortlet.jsp工作上下文这里(注意没有根斜线,只是为了尝试,为什么它可能以前能用的解释)

而且,可能并非如此,但为了完整性和我刚刚从古代就记住的那样:

我见过即使在Windows上,tomcat也承认文件名的大小写。由于我不再在Windows上开发很长一段时间,所以我不在乎这种行为是否可配置,但是鉴于Windows不支持大写,要将其改名为“同名“用不同的大写字母(当时我不得不完全重命名文件,然后将其重命名为正确的大写字母)。

+0

我正在使用请求分派器来包含JSP文件。我在我的DoView方法结束时执行此操作。我已经更新了我的问题 –