You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@cocoon.apache.org by Miguel Angel Marín Moreno <Mi...@isotrol.com> on 2005/04/08 11:21:00 UTC
problem withs sessions running JSPs in COCOON (ver. 2.1.4)
Hi all!
I have a problem with essions in cocoon. In my pipeline I execute a
piece of code in JSP using CINCLUDE transformer. In this piece of code I
load some values in the session which ones later I need to get with
executing another JSP. (I can't use cocoon's sessions/context because I
can't get its values from the JSP code)
In other words, I'll try to explain it better with the code (read the
comments please)
this is my pipeline:
<map:match pattern="Almacena.jsp">
<map:generate type="request">
<map:parameter name="generate-attributes" value="true"/>
</map:generate>
<!-- the pipeline starts with an XML which contains the REQUEST details -->
<!-- peticion.xsl is an XSLT that transform the XML to set the correct
params to apply the CINCLUDE with the params that identify the URL of
the JSP file that I want to execute -->
<map:transform src="xsl/peticion.xsl">
<map:parameter name="cms-url"
value="http://mmarin:8080/pruebasSesion/Ejemplos"/>
<map:parameter name="url-peticion" value="AlmacenaSession.jsp"/>
</map:transform>
<!-- I've thought in the posibility of passing the SessionID as a
parameter to the JSP, but don't know how to "set the sessionID" in JSP.
Any idea?-->
<!-- When I apply the Cinclude transformer, the JSP code RUNS WITH A
DIFFERENT SESSION EACH TIME (that's my problem!) -->
<map:transform type="cinclude"/>
<!-- As I am only proving the way of doing this, I'm using a very simple
JSP file which set the values of 2 params (nombre, edad) in the
session and returns an XML file which will be transformed by the XSLT
"Almacena.xsl" -->
<map:transform src="xsl/Almacena.xsl"/>
<map:serialize type="html"/>
</map:match>
This is the piece of JSP code:
> <%@ page language="Java" session="true"%><?xml version="1.0"
> encoding="ISO-8859-1"?>
> <%@ page import="java.util.*" %>
> <%!String nombre;
> Integer edad;
> String sessionId; %>
> <%nombre=request.getParameter("nombre");
> edad=Integer.parseInt(request.getParameter("edad"));
> sessionId = session.getId();
> session.setAttribute("nombre",nombre);
> session.setAttribute("edad",edad);%>
> <AlmacenaEnSession>
> <nombre><%=nombre%></nombre>
> <edad><%=edad%></edad>
> <sessionID><%=sessionId%></sessionID>
> </AlmacenaEnSession>
I get the SessionID so I can prove that it's different of the one I have
in the browser :((
Finally I try to recovery the info I've saved in the JSP session using
another pipeline similar to this one which execute a JSP code too.
As the session in which the JSP runs is different each time I cannot get
the values....
Any idea?
Thanks in advance!!
Miguel Angel Marín
---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@cocoon.apache.org
For additional commands, e-mail: users-help@cocoon.apache.org