2011-09-02 107 views
2

這是我在嘗試在Liferay Portal 6.0.6中運行portlet時得到的堆棧跟蹤。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

部署並運行一個Portlet(Spring MVC)... – Christopher

回答

2

問題解決了。如上所述,問題是100%類路徑問題。雖然我用jarscan掃描了所有的目錄,但是我找不到任何冗餘.. 事實證明,我的同事在他的部分中使用了許多不必要的JAR,這些不必要的東西都加到了我的WAR中。

它現在工作!

也謝謝大家;-)

6

像這樣的棧跟蹤通常來自類路徑兩次的類。我甚至看到「com.something.SomeClass不能轉換爲java.lang.Object」一次 - 當有人設法在classpath中同時獲得兩個rt.jar(古代歷史)時。

檢查servlet api或jsp api,那些應該不在你的webapp中,而只在tomcat(這似乎是你正在使用的)帶來的全局類路徑上。如果不是這樣,請檢查包含也包含在全局類路徑中的類的其他jar。

並基於Troubleshooting java.lang.AbstractMethodError in portlet development你真的有一些類路徑問題。

+0

如果我從我的webapp的lib目錄中刪除提到的jar然後我完全可以運行它 – Christopher

+0

我得到:'09:10:3​​1,820錯誤[jsp:154] org.apache.jasper.JasperException:/WEB-INF/jsp/main.jsp(7,0)絕對URI:http:// java .sun.com/jsp/jstl/core無法在任何web中解析。 xml或使用此應用程序部署的jar文件 – Christopher

+0

您可以將web.xml的taglib部分以及您的WEB-INF/lib文件夾和tomcat的/ lib文件夾(如果您更改了任何內容)的列表添加到您的題?你肯定會遇到類路徑問題,但如果不知道更多細節,很難更明確地幫助你。 –