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