Details
-
Type:
Bug
-
Status:
Closed
-
Priority:
Major
-
Resolution: No Longer Reproducible
-
Affects Version/s: 6.0.1 RC, 6.0.2 RC
-
Fix Version/s: 6.0.3 GA
-
Component/s: Tools > Plugins SDK > Portlets
-
Labels:None
-
Similar Issues:
Description
Every day I update from trunk and recompile using ant all. This cleans out my Tomcat installation of everything Liferay, including plugins. After starting Liferay, I then deploy the plugins I'm working on.
After this deploy, portlet plugins show up normally, but as soon as you click on a button or anything in them, the following exception is thrown:
15:09:36,656 ERROR [jsp:157] java.lang.ClassNotFoundException: com.inkwell.internet.productregistration.registration.portlet.ProductRegistrationPortlet
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1516)
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1361)
at com.liferay.portal.kernel.util.MethodCache._get(MethodCache.java:106)
at com.liferay.portal.kernel.util.MethodCache.get(MethodCache.java:64)
at com.liferay.portal.kernel.util.MethodCache.get(MethodCache.java:58)
at com.liferay.portal.kernel.portlet.LiferayPortlet.callActionMethod(LiferayPortlet.java:135)
at com.liferay.util.bridges.mvc.MVCPortlet.callActionMethod(MVCPortlet.java:223)
at com.liferay.portal.kernel.portlet.LiferayPortlet.processAction(LiferayPortlet.java:70)
at com.liferay.util.bridges.mvc.MVCPortlet.processAction(MVCPortlet.java:195)
at com.liferay.portlet.FilterChainImpl.doFilter(FilterChainImpl.java:72)
at com.liferay.portal.kernel.portlet.PortletFilterUtil.doFilter(PortletFilterUtil.java:50)
at com.liferay.portlet.InvokerPortletImpl.invoke(InvokerPortletImpl.java:639)
at com.liferay.portlet.InvokerPortletImpl.invokeAction(InvokerPortletImpl.java:672)
at com.liferay.portlet.InvokerPortletImpl.processAction(InvokerPortletImpl.java:361)
at com.liferay.portal.action.LayoutAction.processPortletRequest(LayoutAction.java:738)
at com.liferay.portal.action.LayoutAction.processLayout(LayoutAction.java:548)
at com.liferay.portal.action.LayoutAction.execute(LayoutAction.java:217)
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:154)
After this, I redeploy the portlet, and everything works normally.
For themes, it's a similar issue but slightly different. When the theme is first deployed, it works fine. Then I get the above error with a portlet and redeploy the portlet. After I've redeployed the portlet, the theme becomes unavailable and Liferay displays an empty page and throws the following exception:
15:10:19,644 ERROR [ServletVelocityResourceListener:77] SERVLET_CONTEXT/html/themes/_unstyled/templates/init.vm is not valid because does not map to a servlet context
15:10:19,646 ERROR [velocity:151] ResourceManager : unable to find resource 'SERVLET_CONTEXT/html/themes/_unstyled/templates/init.vm' in any resource loader.
15:10:19,647 ERROR [velocity:151] #parse(): cannot find template 'SERVLET_CONTEXT/html/themes/unstyled/templates/init.vm', called at inkwell-internet-theme_SERVLET_CONTEXT/templates/portal_normal.vm[line 3, column 1]
15:10:19,647 ERROR [IncludeTag:229] Current URL /web/guest/home?p_auth=bO4yYXfh&p_p_auth=DZW2oGgY&p_p_id=productregistration_WAR_productregistrationportlet_INSTANCE_mWD5&p_p_lifecycle=1&p_p_state=maximized&p_p_mode=view&p_p_col_id=column-2&p_p_col_pos=1&p_p_col_count=2&productregistration_WAR_productregistrationportlet_INSTANCE_mWD5_javax.portlet.action=addRegistration generates exception: Unable to find resource '_SERVLET_CONTEXT/html/themes/_unstyled/templates/init.vm'
15:10:19,649 ERROR [IncludeTag:157] org.apache.velocity.exception.ResourceNotFoundException: Unable to find resource 'SERVLET_CONTEXT/html/themes/_unstyled/templates/init.vm'
at org.apache.velocity.runtime.resource.ResourceManagerImpl.loadResource(ResourceManagerImpl.java:483)
at org.apache.velocity.runtime.resource.ResourceManagerImpl.getResource(ResourceManagerImpl.java:354)
at org.apache.velocity.runtime.RuntimeInstance.getTemplate(RuntimeInstance.java:1400)
at org.apache.velocity.runtime.directive.Parse.render(Parse.java:198)
at org.apache.velocity.runtime.parser.node.ASTDirective.render(ASTDirective.java:175)
at org.apache.velocity.runtime.parser.node.SimpleNode.render(SimpleNode.java:336)
at org.apache.velocity.Template.merge(Template.java:328)
at org.apache.velocity.Template.merge(Template.java:235)
at org.apache.velocity.app.VelocityEngine.mergeTemplate(VelocityEngine.java:381)
at com.liferay.portal.velocity.VelocityEngineImpl.mergeTemplate(VelocityEngineImpl.java:157)
at com.liferay.portal.velocity.VelocityEngineImpl.mergeTemplate(VelocityEngineImpl.java:167)
at com.liferay.portal.kernel.velocity.VelocityEngineUtil.mergeTemplate(VelocityEngineUtil.java:73)
at com.liferay.taglib.util.ThemeUtil.includeVM(ThemeUtil.java:317)
at com.liferay.taglib.util.ThemeUtil.include(ThemeUtil.java:74)
at com.liferay.taglib.theme.IncludeTag.include(IncludeTag.java:40)
at com.liferay.taglib.util.IncludeTag._doInclude(IncludeTag.java:221)
at com.liferay.taglib.util.IncludeTag.doEndTag(IncludeTag.java:60)
at org.apache.jsp.html.common.themes.portal_jsp._jspx_meth_liferay_002dtheme_005finclude_005f1(portal_jsp.java:828)
at org.apache.jsp.html.common.themes.portal_jsp._jspx_meth_c_005fotherwise_005f0(portal_jsp.java:800)
at org.apache.jsp.html.common.themes.portal_jsp._jspService(portal_jsp.java:736)
After redeploying the theme, everything works properly.
So it seems that upon restarting Liferay, plugins need to be deployed twice, which is not expected behavior.

Hi Rich, I'm able to deploy the Youtube portlet and it works on the first run through. I'm on trunk revision 56177. Is this still an issue?