Re: cache-control
DavidSeanTaylor <[email protected]> Sat, 13 Aug 2016 14:06:56 -0700
| Newsgroups | gmane.comp.jakarta.jetspeed.user |
|---|---|
| Message-ID | <[email protected]> |
Here is the root of the problem: Horrible Exception: java.lang.ClassNotFoundException: Requested Page not found: MyJetspeedJspPage Turbine looked in the following = modules.packages path: [org.apache.jetspeed.modules, org.apache.turbine.modules, com.sterlingcommerce.neo.ui.dashboard.jetspeed] * at Appears you have not placed MyJetspeedJspPage in the correct directory = relative to your module root above For example I think your MyJetspeedJspPage class needs to go under the = package: com.sterlingcommerce.neo.ui.dashboard.jetspeed.pages=20 I guess you can also put it here, but its not following recommended = Turbine best practices: org.apache.jetspeed.modules.pages=20 > On Aug 13, 2016, at 12:54 PM, Usha Ladkani <[email protected]> = wrote: >=20 > Yes in services in my TemplateService.default.extension property , > TurbineResources.properties is set to .jsp. >=20 > Now I am seeing this exception, >=20 > Error encountered processing a template: > /layouts/html/default.jspjava.lang.NullPointerException at > = com.sterlingcommerce.dash.jsp.WEB_002dINF.templates.jsp.layouts.html.defau= lt_jsp._jspService(default_jsp.java:75) > at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:97) = at > javax.servlet.http.HttpServlet.service(HttpServlet.java:806) at > org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:511) = at > = org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:401) = at > = org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:216= ) > at = org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:182) > at = org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:768) > at = org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:450) at > org.mortbay.jetty.servlet.Dispatcher.include(Dispatcher.java:193) at > = org.apache.turbine.services.jsp.TurbineJspService.handleRequest(TurbineJsp= Service.java:202) > at > = org.apache.jetspeed.modules.layouts.JetspeedJspLayout.doBuild(JetspeedJspL= ayout.java:130) > at org.apache.turbine.modules.Layout.build(Layout.java:91) at > org.apache.turbine.modules.LayoutLoader.exec(LayoutLoader.java:123) at > = org.apache.turbine.modules.pages.DefaultPage.doBuild(DefaultPage.java:169)= > at org.apache.turbine.modules.Page.build(Page.java:90) at > org.apache.turbine.modules.PageLoader.exec(PageLoader.java:123) at > org.apache.turbine.Turbine.handleException(Turbine.java:712) at > org.apache.turbine.Turbine.doGet(Turbine.java:634) at > javax.servlet.http.HttpServlet.service(HttpServlet.java:693) at > javax.servlet.http.HttpServlet.service(HttpServlet.java:806) at > org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:511) = at > = org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:401) = at > = org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:216= ) > at = org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:182) > at = org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:768) > at = org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:450) at > org.mortbay.jetty.servlet.Dispatcher.forward(Dispatcher.java:329) at > org.mortbay.jetty.servlet.Dispatcher.forward(Dispatcher.java:126) at > = org.apache.jasper.runtime.PageContextImpl.doForward(PageContextImpl.java:7= 03) > at > = org.apache.jasper.runtime.PageContextImpl.forward(PageContextImpl.java:670= ) > at = com.sterlingcommerce.dash.jsp.index_jsp._jspService(index_jsp.java:85) > at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:97) = at > javax.servlet.http.HttpServlet.service(HttpServlet.java:806) at > org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:511) = at > = org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:401) = at > = org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:216= ) > at = org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:182) > at = org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:768) > at = org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:450) at > org.mortbay.jetty.servlet.Dispatcher.forward(Dispatcher.java:329) at > org.mortbay.jetty.servlet.Dispatcher.forward(Dispatcher.java:126) at > = org.mortbay.jetty.servlet.DefaultServlet.doGet(DefaultServlet.java:503) = at > javax.servlet.http.HttpServlet.service(HttpServlet.java:693) at > javax.servlet.http.HttpServlet.service(HttpServlet.java:806) at > org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:511) = at > = org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandl= er.java:1221) > at > = com.sterlingcommerce.woodstock.ui.dlsso.DLSSOFilter.doFilter(DLSSOFilter.j= ava:259) > at > = org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandl= er.java:1212) > at > = com.sterlingcommerce.woodstock.ui.SecurityExtensionFilter.doFilter(Securit= yExtensionFilter.java:173) > at > = org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandl= er.java:1212) > at = org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:399) > at > = org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:216= ) > at = org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:182) > at = org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:768) > at = org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:450) at > = org.mortbay.jetty.handler.ContextHandlerCollection.handle(ContextHandlerCo= llection.java:230) > at > = org.mortbay.jetty.handler.HandlerCollection.handle(HandlerCollection.java:= 114) > at = org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152) > at org.mortbay.jetty.Server.handle(Server.java:326) at > = org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:544) = at > = org.mortbay.jetty.HttpConnection$RequestHandler.headerComplete(HttpConnect= ion.java:942) > at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:549) at > org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:212) at > org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:406) at > = org.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:41= 0) > at > = org.mortbay.thread.BoundedThreadPool$PoolThread.run(BoundedThreadPool.java= :451)* > Horrible Exception: java.lang.ClassNotFoundException: Requested Page = not > found: MyJetspeedJspPage Turbine looked in the following = modules.packages > path: [org.apache.jetspeed.modules, org.apache.turbine.modules, > com.sterlingcommerce.neo.ui.dashboard.jetspeed] * at > org.apache.turbine.modules.PageLoader.getInstance(PageLoader.java:175) = at > org.apache.turbine.modules.PageLoader.exec(PageLoader.java:123) at >=20 >=20 >=20 >=20 > I have kept my classes MyJetspeedJspPage.class and = MyVelocityPage.class in > directory /WEB-INF/classes/org/apache/jetspeed/modules. >=20 >=20 > On Sat, Aug 13, 2016 at 9:57 PM, DavidSeanTaylor = <[email protected]> > wrote: >=20 >> Did you add your class to the modules path in = TurbineResources.properties? >>=20 >> module.packages=3Dorg.apache.jetspeed.modules >> module.packages=3Dorg.apache.turbine.modules >>=20 >>> Do I need to extend JetspeedJspPage also? this is also mentioned in = the >>> TurbineResources.properties >>> as below >>>=20 >>> services.JspService.default.page =3D JetspeedJspPage11 >>=20 >> Perhaps. Look in TurbineResources.properties, maybe this is set to = .jsp? >> By default it is vm: >>=20 >> services.TemplateService.default.extension=3Dvm >>=20 >>=20 >>> On Aug 13, 2016, at 8:09 AM, Usha Ladkani <[email protected]> = wrote: >>>=20 >>> Thank you so much. >>> I tried this , but it did not work. >>>=20 >>> Do I need to extend JetspeedJspPage also? this is also mentioned in = the >>> TurbineResources.properties >>> as below >>>=20 >>> services.JspService.default.page =3D JetspeedJspPage11 >>>=20 >>>=20 >>> On Fri, Aug 12, 2016 at 8:25 PM, DavidSeanTaylor = <[email protected]> >>> wrote: >>>=20 >>>> Looks like you are using some release of Jetspeed-1. That project = has >> been >>>> retired since 2008. >>>>=20 >>>> https://portals.apache.org/jetspeed-1/ <https://portals.apache.org/ >>>> jetspeed-1/> >>>>=20 >>>>=20 >>>> Seems the cache header logic is hard-coded, so you=E2=80=99ll have = to override >>>> JetspeedVelocityPage in TurbineResources.properties with your own >>>> implementation. >>>>=20 >>>> See TurbineResources.properties >>>> services.VelocityService.default.page =3D JetspeedVelocityPage >>>> Then see JetspeedVelocityPage, it calls super.doBuildBeforeAction, = which >>>> contains the hard-coding in JetspeedTemplatePage.java: >>>>=20 >>>> switch (httpLifetime) >>>> { >>>> case -1: >>>> break; >>>> case 0: >>>> data.getResponse().setHeader("Cache-Control", "no-cache"); >>>> data.getResponse().setHeader("Pragma", "no-cache"); >>>> data.getResponse().setDateHeader("Expires", 0); >>>> data.getResponse().setDateHeader("Last-Modified", >>>> System.currentTimeMillis()); >>>> break; >>>> default: >>>> data.getResponse().setHeader("Cache-Control", "max-age=3D" + >>>> httpLifetime); >>>> data.getResponse().setDateHeader("Expires", >>>> System.currentTimeMillis() + (httpLifetime * 1000)); >>>> data.getResponse().setDateHeader("Last-Modified", >>>> System.currentTimeMillis()); >>>> break; >>>> } >>>>=20 >>>> To override this behavior, simply write your own velocity page = handler >>>> extending JetspeedVelocityPage, and override the = doBuildBeforeAction to >>>> include your required headers, don=E2=80=99t call = super.doBuildBeforeAction, and >>>> then plug your handler into TurbineResources.properties >>>>=20 >>>> services.VelocityService.default.page =3D MyVelocityPage >>>>=20 >>>>=20 >>>>> On Aug 11, 2016, at 10:06 PM, Usha Ladkani <[email protected]> >>>> wrote: >>>>>=20 >>>>> It says - JetspeedResources.properties,v 1.1.1326.2 2012/05/31 = 21:38:56 >>>>>=20 >>>>> In this property I see below >>>>>=20 >>>>> ######################################### >>>>> # HTTP Page header # >>>>> ######################################### >>>>> # http.lifetime is the lifetime of the page as set in the >>>>> # HTTP Headers >>>>> # -1 =3D Do not set cache related headers (Jetspeed 1.3a1 = behavior) >>>>> # 0 =3D set the following http headers >>>>> # Cache-Control =3D "no-cache" >>>>> # Last-Modified =3D (current time) >>>>> # Pragma =3D "no-cache" >>>>> # Expires =3D "0" >>>>> # n where n is the number of seconds: >>>>> # Cache-Control =3D "max-age: n" where n is the number = of >> seconds >>>>> # Last-Modified =3D (current time) >>>>> # Expires =3D (current time + n seconds) >>>>> http.lifetime=3D1 >>>>>=20 >>>>>=20 >>>>> ######################################### >>>>>=20 >>>>>=20 >>>>> Looks like this only can set Cache-Control to no-cache or = max-age.: >>>>>=20 >>>>> Can you please tell me which version are you using and share your >>>>> JetspeedResources.properties >>>>=20 >>>>=20 >>=20 >>=20 >> --------------------------------------------------------------------- >> To unsubscribe, e-mail: [email protected] >> For additional commands, e-mail: = [email protected] >>=20 >>=20