[ http://issues.apache.org/jira/browse/GRFT-14?page=comments#action_59718 ] DerShung Yang commented on GRFT-14: -----------------------------------
I traced on this issue and found that org.apache.jetspeed.tools.pamanager.WarInfusionPAM.sysDeploy() seems to be the problem. Basically, after deploying the war file into webapps, sysDeploy() simply returns without registering the portlet app, which includes the registration of the classloader. The comment for the return statement (line 548, version 1.5) was: "do not complete registration synchronously: infused JetspeedContainerServlet will register when webapp is auto/live deployed in container" Not sure about the rationale behind this statement and how to resolve it. > Classloader issue when deploying graffito the first time > -------------------------------------------------------- > > Key: GRFT-14 > URL: http://issues.apache.org/jira/browse/GRFT-14 > Project: Graffito > Type: Bug > Components: Jetspeed 2 integration > Environment: Tomcat 5.0.28 > Reporter: DerShung Yang > Priority: Minor > > I did an allClean,allBuild,allDeploy build and then launched Tomcat (Jetspeed > 2 was already built and deployed). I logged in as admin and then clicked on > the Graffito tab. The following exception occured. After I shutdown and > re-launched Tomcat the second time, the problem went away. > VelocityViewServlet : Error processing the template > Invocation of method 'getTitle' in class > org.apache.jetspeed.velocity.JetspeedPowerTool threw exception class > java.lang.IllegalStateException : No classloader has been defined for portlet > application 1 > java.lang.IllegalStateException: No classloader has been defined for portlet > application 1 > at > org.apache.jetspeed.factory.JetspeedPortletFactory.getPortletClassLoader(JetspeedPortletFactory.java:216) > at > org.apache.jetspeed.request.JetspeedRequestContext.getPreferedLanguage(JetspeedRequestContext.java:497) > at > org.apache.jetspeed.velocity.JetspeedPowerTool.getTitle(JetspeedPowerTool.java:993) > at > org.apache.jetspeed.velocity.JetspeedPowerTool.getTitle(JetspeedPowerTool.java:972) > at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) > at > sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) > at > sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) > at java.lang.reflect.Method.invoke(Method.java:324) > at > org.apache.velocity.util.introspection.UberspectImpl$VelMethodImpl.invoke(UberspectImpl.java:267) > at > org.apache.velocity.runtime.parser.node.ASTMethod.execute(ASTMethod.java:197) > at > org.apache.velocity.runtime.parser.node.ASTReference.execute(ASTReference.java:175) > at > org.apache.velocity.runtime.parser.node.ASTReference.render(ASTReference.java:220) > at > org.apache.velocity.runtime.parser.node.SimpleNode.render(SimpleNode.java:230) > at org.apache.velocity.runtime.directive.Parse.render(Parse.java:181) > at > org.apache.velocity.runtime.parser.node.ASTDirective.render(ASTDirective.java:114) > at > org.apache.velocity.runtime.parser.node.ASTBlock.render(ASTBlock.java:55) > at > org.apache.velocity.runtime.parser.node.ASTIfStatement.render(ASTIfStatement.java:70) > at > org.apache.velocity.runtime.parser.node.ASTBlock.render(ASTBlock.java:55) > at > org.apache.velocity.runtime.directive.Foreach.render(Foreach.java:166) > at > org.apache.velocity.runtime.parser.node.ASTDirective.render(ASTDirective.java:114) > at > org.apache.velocity.runtime.parser.node.ASTBlock.render(ASTBlock.java:55) > at > org.apache.velocity.runtime.directive.Foreach.render(Foreach.java:166) > at > org.apache.velocity.runtime.parser.node.ASTDirective.render(ASTDirective.java:114) > at > org.apache.velocity.runtime.parser.node.SimpleNode.render(SimpleNode.java:230) > at org.apache.velocity.Template.merge(Template.java:256) > at > org.apache.portals.bridges.velocity.BridgesVelocityViewServlet.mergeTemplate(BridgesVelocityViewServlet.java:118) > at > org.apache.velocity.tools.view.servlet.VelocityViewServlet.doRequest(Unknown > Source) > at > org.apache.velocity.tools.view.servlet.VelocityViewServlet.doGet(Unknown > Source) > at javax.servlet.http.HttpServlet.service(HttpServlet.java:689) > at javax.servlet.http.HttpServlet.service(HttpServlet.java:802) > at > org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:237) > at > org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:157) > at > org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:704) > at > org.apache.catalina.core.ApplicationDispatcher.doInclude(ApplicationDispatcher.java:590) > at > org.apache.catalina.core.ApplicationDispatcher.include(ApplicationDispatcher.java:510) > at > org.apache.jetspeed.dispatcher.JetspeedRequestDispatcher.include(JetspeedRequestDispatcher.java:65) > at > org.apache.portals.bridges.common.GenericServletPortlet.doView(GenericServletPortlet.java:363) > at > org.apache.jetspeed.portlets.layout.LayoutPortlet.doView(LayoutPortlet.java:134) > at > org.apache.jetspeed.portlets.layout.MultiColumnPortlet.doView(MultiColumnPortlet.java:120) > at javax.portlet.GenericPortlet.doDispatch(GenericPortlet.java:235) > at javax.portlet.GenericPortlet.render(GenericPortlet.java:163) > at > org.apache.jetspeed.container.JetspeedContainerServlet.doGet(JetspeedContainerServlet.java:233) > at javax.servlet.http.HttpServlet.service(HttpServlet.java:689) > at javax.servlet.http.HttpServlet.service(HttpServlet.java:802) > at > org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:237) > at > org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:157) > at > org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:704) > at > org.apache.catalina.core.ApplicationDispatcher.doInclude(ApplicationDispatcher.java:590) > at > org.apache.catalina.core.ApplicationDispatcher.include(ApplicationDispatcher.java:510) > at > org.apache.jetspeed.container.invoker.ServletPortletInvoker.invoke(ServletPortletInvoker.java:215) > at > org.apache.jetspeed.container.invoker.ServletPortletInvoker.render(ServletPortletInvoker.java:125) > at sun.reflect.GeneratedMethodAccessor160.invoke(Unknown Source) > at > sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) > at java.lang.reflect.Method.invoke(Method.java:324) > at > org.springframework.aop.framework.AopProxyUtils.invokeJoinpointUsingReflection(AopProxyUtils.java:61) > at > org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:142) > at $Proxy14.render(Unknown Source) > at > org.apache.pluto.PortletContainerImpl.renderPortlet(PortletContainerImpl.java:103) > at > org.apache.jetspeed.container.JetspeedPortletContainerWrapper.renderPortlet(JetspeedPortletContainerWrapper.java:88) > at > org.apache.jetspeed.aggregator.impl.RenderingJob.execute(RenderingJob.java:108) > at > org.apache.jetspeed.aggregator.impl.PortletRendererImpl.renderNow(PortletRendererImpl.java:103) > at > org.apache.jetspeed.aggregator.impl.PageAggregatorImpl.aggregateAndRender(PageAggregatorImpl.java:261) > at > org.apache.jetspeed.aggregator.impl.PageAggregatorImpl.build(PageAggregatorImpl.java:148) > at > org.apache.jetspeed.aggregator.AggregatorValve.invoke(AggregatorValve.java:48) > at > org.apache.jetspeed.pipeline.JetspeedPipeline.invokeNext(JetspeedPipeline.java:209) > at > org.apache.jetspeed.pipeline.valve.impl.ActionValveImpl.invoke(ActionValveImpl.java:117) > at > org.apache.jetspeed.pipeline.JetspeedPipeline.invokeNext(JetspeedPipeline.java:209) > at > org.apache.jetspeed.container.ContainerValve.invoke(ContainerValve.java:76) > at > org.apache.jetspeed.pipeline.JetspeedPipeline.invokeNext(JetspeedPipeline.java:209) > at > org.apache.jetspeed.profiler.impl.ProfilerValveImpl.invoke(ProfilerValveImpl.java:133) > at > org.apache.jetspeed.pipeline.JetspeedPipeline.invokeNext(JetspeedPipeline.java:209) > at > org.apache.jetspeed.security.impl.PasswordCredentialValveImpl.invoke(PasswordCredentialValveImpl.java:139) > at > org.apache.jetspeed.pipeline.JetspeedPipeline.invokeNext(JetspeedPipeline.java:209) > at > org.apache.jetspeed.security.impl.AbstractSecurityValve$1.run(AbstractSecurityValve.java:117) > at java.security.AccessController.doPrivileged(Native Method) > at javax.security.auth.Subject.doAsPrivileged(Subject.java:437) > at > org.apache.jetspeed.security.impl.AbstractSecurityValve.invoke(AbstractSecurityValve.java:111) > at > org.apache.jetspeed.pipeline.JetspeedPipeline.invokeNext(JetspeedPipeline.java:209) > at > org.apache.jetspeed.container.url.impl.PortalURLValveImpl.invoke(PortalURLValveImpl.java:55) > at > org.apache.jetspeed.pipeline.JetspeedPipeline.invokeNext(JetspeedPipeline.java:209) > at > org.apache.jetspeed.capabilities.impl.CapabilityValveImpl.invoke(CapabilityValveImpl.java:127) > at > org.apache.jetspeed.pipeline.JetspeedPipeline.invokeNext(JetspeedPipeline.java:209) > at > org.apache.jetspeed.localization.impl.LocalizationValveImpl.invoke(LocalizationValveImpl.java:122) > at > org.apache.jetspeed.pipeline.JetspeedPipeline.invokeNext(JetspeedPipeline.java:209) > at > org.apache.jetspeed.pipeline.JetspeedPipeline.invoke(JetspeedPipeline.java:191) > at > org.apache.jetspeed.engine.AbstractEngine.service(AbstractEngine.java:257) > at > org.apache.jetspeed.engine.JetspeedServlet.doGet(JetspeedServlet.java:225) > at javax.servlet.http.HttpServlet.service(HttpServlet.java:689) > at javax.servlet.http.HttpServlet.service(HttpServlet.java:802) > at > org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:237) > at > org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:157) > at > org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:214) > at > org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104) > at > org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520) > at > org.apache.catalina.core.StandardContextValve.invokeInternal(StandardContextValve.java:198) > at > org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:152) > at > org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104) > at > org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:462) > at > org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:102) > at > org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520) > at > org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:137) > at > org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104) > at > org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:118) > at > org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:102) > at > org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520) > at > org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109) > at > org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104) > at > org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520) > at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:929) > at > org.apache.coyote.tomcat5.CoyoteAdapter.service(CoyoteAdapter.java:160) > at > org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:799) > at > org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:705) > at > org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java:577) > at > org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:683) > at java.lang.Thread.run(Thread.java:534) -- This message is automatically generated by JIRA. - If you think it was sent incorrectly contact one of the administrators: http://issues.apache.org/jira/secure/Administrators.jspa - If you want more information on JIRA, or have a bug to report see: http://www.atlassian.com/software/jira
