2011-09-02 2 views
2

다음은 Liferay Portal 6.0.6에서 포틀릿을 실행할 때 나타나는 스택 추적입니다.Liferay Portlet Taglib 캐스트 예외

누구나 무슨 일이 일어나는지 실마리가 있습니까?

 
12:40:00,146 ERROR [PortletServlet:96] javax.portlet.PortletException: javax.servlet.ServletException: javax.servlet.jsp 
    .JspException: com.liferay.taglib.aui.LayoutTag cannot be cast to javax.servlet.jsp.tagext.Tag 
    javax.portlet.PortletException: javax.servlet.ServletException: javax.servlet.jsp.JspException: com.liferay.taglib.aui.L 
    ayoutTag cannot be cast to javax.servlet.jsp.tagext.Tag 
    at com.liferay.portlet.PortletRequestDispatcherImpl.include(PortletRequestDispatcherImpl.java:110) 
    at org.springframework.web.portlet.DispatcherPortlet.doRender(DispatcherPortlet.java:1137) 
    at org.springframework.web.portlet.DispatcherPortlet.render(DispatcherPortlet.java:1092) 
    at org.springframework.web.portlet.DispatcherPortlet.doRenderService(DispatcherPortlet.java:755) 
    at org.springframework.web.portlet.FrameworkPortlet.processRequest(FrameworkPortlet.java:522) 
    at org.springframework.web.portlet.FrameworkPortlet.doDispatch(FrameworkPortlet.java:470) 
    at javax.portlet.GenericPortlet.render(GenericPortlet.java:233) 
    at com.liferay.portlet.FilterChainImpl.doFilter(FilterChainImpl.java:101) 
    at com.liferay.portal.kernel.portlet.PortletFilterUtil.doFilter(PortletFilterUtil.java:64) 
    at com.liferay.portal.kernel.servlet.PortletServlet.service(PortletServlet.java:92) 
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:717) 
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290) 
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) 
    at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:646) 
    at org.apache.catalina.core.ApplicationDispatcher.doInclude(ApplicationDispatcher.java:551) 
    at org.apache.catalina.core.ApplicationDispatcher.include(ApplicationDispatcher.java:488) 
    at com.liferay.portlet.InvokerPortletImpl.invoke(InvokerPortletImpl.java:638) 
    at com.liferay.portlet.InvokerPortletImpl.invokeRender(InvokerPortletImpl.java:723) 
    at com.liferay.portlet.InvokerPortletImpl.render(InvokerPortletImpl.java:425) 
    at org.apache.jsp.html.portal.render_005fportlet_jsp._jspService(render_005fportlet_jsp.java:1440) 
    at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70) 
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:717) 
    at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:377) 
    at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:313) 
    at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:260) 
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:717) 
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290) 
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) 
    at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:646) 
    at org.apache.catalina.core.ApplicationDispatcher.doInclude(ApplicationDispatcher.java:551) 
    at org.apache.catalina.core.ApplicationDispatcher.include(ApplicationDispatcher.java:488) 
    at com.liferay.portal.util.PortalImpl.renderPortlet(PortalImpl.java:3740) 
    at com.liferay.portal.util.PortalUtil.renderPortlet(PortalUtil.java:1180) 
    at com.liferay.portlet.layoutconfiguration.util.RuntimePortletUtil.processPortlet(RuntimePortletUtil.java:160) 
    at com.liferay.portlet.layoutconfiguration.util.RuntimePortletUtil.processPortlet(RuntimePortletUtil.java:94) 
    at com.liferay.portlet.layoutconfiguration.util.RuntimePortletUtil.processTemplate(RuntimePortletUtil.java:256) 
    at com.liferay.portlet.layoutconfiguration.util.RuntimePortletUtil.processTemplate(RuntimePortletUtil.java:181) 
    at org.apache.jsp.html.portal.layout.view.portlet_jsp._jspService(portlet_jsp.java:821) 
    at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70) 
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:717) 
    at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:377) 
    at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:313) 
    at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:260) 
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:717) 
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290) 
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) 
    at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:646) 
    at org.apache.catalina.core.ApplicationDispatcher.doInclude(ApplicationDispatcher.java:551) 
    at org.apache.catalina.core.ApplicationDispatcher.include(ApplicationDispatcher.java:488) 
    at com.liferay.portal.action.LayoutAction.includeLayoutContent(LayoutAction.java:370) 
    at com.liferay.portal.action.LayoutAction.processLayout(LayoutAction.java:629) 
    at com.liferay.portal.action.LayoutAction.execute(LayoutAction.java:232) 
    at org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:431) 
    at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:236) 
    at com.liferay.portal.struts.PortalRequestProcessor.process(PortalRequestProcessor.java:153) 
    at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1196) 
    at org.apache.struts.action.ActionServlet.doGet(ActionServlet.java:414) 
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:617) 
    at com.liferay.portal.servlet.MainServlet.callParentService(MainServlet.java:508) 
+0

섹시한 스택 트레이스를 만들기 위해 무엇을 했습니까? –

+0

포틀릿 (Spring MVC) 배포 및 실행 중 ... – Christopher

답변

2

문제가 해결되었습니다. 위에서 설명한 것처럼 문제는 100 % 클래스 경로 문제입니다. jarscan으로 모든 디렉토리를 스캔했지만 중복을 찾을 수 없었습니다. 제 동료는 불필요하게 많은 WAR를 추가하는 불필요한 JAR 파일을 많이 사용했습니다.

이제 작동 중입니다!

고마워요.

6

일반적으로 Stacktraces는 classpath에있는 클래스에서 두 번옵니다. 나는 "com.something.SomeClass가 java.lang.Object로 형변환 될 수 없다"는 것을 보았습니다 - 누군가가 동시에 classpath에 두 개의 rt.jar를 가져올 때 (고대의 역사).

servlet api 또는 jsp api가 webapp에 있지 않아야하지만 tomcat (사용중인 것으로 보이는 것)이 가져 오는 전역 클래스 경로에서만 확인하십시오. 그렇지 않은 경우 전역 클래스 경로에 포함 된 클래스가 포함 된 다른 모든 병을 확인하십시오.

그리고 Troubleshooting java.lang.AbstractMethodError in portlet development을 기반으로하면 실제로 몇 가지 클래스 경로 문제가 있습니다.

+0

웹 응용 프로그램의 lib 디렉토리에서 언급 한 jar 파일을 제거한 후 수행 할 수 없습니다. – Christopher

+0

: '09 : 10 : 31,820 ERROR [jsp : 154] org.apache.jasper.JasperException : /WEB-INF/jsp/main.jsp(7,0) 절대 uri : http : // java .sun.com/jsp/jstl/core는 어느 웹에서도 확인할 수 없습니다. xml 또는이 응용 프로그램과 함께 배포 된 jar 파일' – Christopher

+0

은 web.xml의 taglib 섹션뿐만 아니라 WEB-INF/lib 폴더 및 tomcat의/lib 폴더 (변경된 경우)의 목록을 문제? 클래스 경로 문제는 분명히 있지만 자세한 내용을 알지 못하면 명시 적으로 도움을주기가 어렵습니다. –