Thanks very much for sharing your knowledge and struggles Bruce! It seams to me that this thread's summarisation might make it to a fine wiki page how to run cocoon in JetSpeed :-)
Regards Ard > > > The struggle continues. > > The resolution to my last post was to do an XSL transform on all > "action" URLs to prepend "portlet:action:" and to strip off > the servlet > path altogether, since the portal container provides it from > the entry > in portlet.xml (I believe). > > Now my problem is that my hibernate OpenSessionInViewFilter is never > called when accessing cocoon as a portlet. This is because > there are no > equivalent portlet filters defined by JSR-168 (although they are > apparently coming in JSR-268). The Spring Web Framework gets > around this > by wrapping its web processing with an OpenSessionInViewInterceptor. > > So my question is a rather basic Cocoon one. Is there a way > to configure > Cocoon to basically do the equivalent of a Servlet Filter > without using > a Servlet Filter? IOW, to wrap Cocoon.process(env) so that on > entry it > always calls a preprocess() type method, and on exit (no > matter how it > exits), to always call a postprocess() type method? > > I imagine the answer is "yes" since Cocoon 2.1 predates > Servlet filters > and has all that funky Avalon stuff, I'm just uncertain how to do it. > The alternative is to write my own ManagedCocoonPortlet and wrap the > processAction() and render() methods with the equivalent Hibernate > Session creation and destruction that OpenSessionInView does. > But that > solution seems rather clunky to me. > > Does anyone have any suggestions? > > Bruce Atherton wrote: > > Continuing my saga of trying to get a Cocoon application > deployed as a > > JSR-168 servlet into Jetspeed, I am experiencing the following odd > > behaviour: > > > > When I call getServletPath() from a page that is called by > the portal > > container, it returns without a leading slash. The exact same page > > when accessed through cocoon as a servlet results in > getServletPath() > > returning WITH a leading slash. The lack of the leading slash is > > causing the EncodeURLTransformer to fail. > > > > To be clear, I deploy a webapp called "myapp" with a portlet > > "myportlet". The root sitemap has: > > > > <map:match pattern="myportlet"> > > <map:mount check-reload="yes" src="myapp/portlet-sitemap.xmap" > > uri-prefix="myportlet"/> > > </map:match> > > <map:match pattern="myportlet/**"> > > <map:mount check-reload="yes" src="myapp/portlet-sitemap.xmap" > > uri-prefix="myportlet"/> > > </map:match> > > > > The portlet-sitemap.xmap has: > > > > <map:match pattern=""> > > <map:call function="displayServletPath"/> > > </map:match> > > > > The WEB-INF/portlet.xml has: > > > > <init-param> > > <name>servlet-path</name> > > <value>myportlet</value> > > </init-param> > > > > I also tried changing the value to "/myportlet" but it had > no effect. > > > > The displayServletPath flowscript function displays a form that > > outputs the value of the expression > > ${cocoon.request.getServletPath()}. When accessing > > http://localhost:8080/myapp/myportlet/, getServletPath() returns > > "/myportlet". When accessed through the portal, it returns > "myportlet". > > > > Has anyone got any suggestions as to why that is occurring > and how to > > get around it? Could it have anything to do with the issues > raised in > > this blog entry? http://bluxte.net/blog/2006-03/29-40-33.html > > > > Again, any help appreciated. > > > > > > --------------------------------------------------------------------- > To unsubscribe, e-mail: [EMAIL PROTECTED] > For additional commands, e-mail: [EMAIL PROTECTED] > > --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]