Saludos, estoy aprendiendo con java especificamente hibernate + struts, revisando en internet encontre esta pagina http://blog.lshimokawa.net/2007/12/accediendo-al-request-o-la-sesin-con.html  en la cual se hace referencia a que mediante DWR se puede acceder al request, especificamente a los metodos basados en la clase WebContext, sin embargo yo estoy probando lo siguiente:
 
1. tengo una clase tipo  ActionForm   la cual contiene 2 metodos (uno que carga o setea un atributo al request y otro que ejecuta la funcion de DWR):
 
public class alumnoAction extends  ActionForm {
 
           public ActionForward mostrar_alumnos(	ActionMapping mapping, ActionForm form,	HttpServletRequest request, HttpServletResponse response) {
 
		request.setAttribute("nombre", "edwuard quintero");
 
                  //imprimo el objeto request para saber de que tipo es:
		System.out.println( "request->"+ request );              
 // la consola de java devuelve: org.apache.catalina.core.ApplicationHttpRequest@1f  ba15d
 
// bien es el request de la aplicacion
 
		//retorna el forward
		return mapping.findForward("showPage");
	}
 
}
 
                   el forward va a una pagina JSP la cual muestra la informacion:
                   ejemplo de la pagina JSP:
 
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>   
    <title>Pagina de Prueba</title>
  </head>
  <body>
            Hola: <% request.getAttribute("nombre"); %>
  </body>
</html>
 
 
2. ahora bien, tengo configurado el DWR.XML asi:
 
<dwr>
<allow>
<create  creator="new" javascript="jsDWR" >
<param name="class" value="com.app.struts.action.alumnoAction"/>
</create>
</allow>
</dwr>
 
 
 
este es el script en la pagina principal que llama a DWR:
 
  <script type="text/javascript">
	function update() {
 
        	var name = dwr.util.getValue("nombre");
 
	  	jsDWR.cambiaNombre(name, function(data) {
           	    	dwr.util.setValue("nombre", data);
	  	});
 
	}    
    </script>
 
 
 EL PROBLEMA!  es que cuando se llama a la funcion de DWR "cambiaNombre()" me dice que el request y la session son NULL
 
public String cambiaNombre(String name) {
 
	WebContext ctx = WebContextFactory.get(); 
	HttpSession session = ctx.getHttpServletRequest().getSession(false);
        HttpServletRequest req = ctx.getHttpServletRequest();
 
 //intento recuperar el request y la session
	System.out.println( "session->"+session  );      //la consola de java devuelve: NULL
	System.out.println( "request->"+req );              //la consola de java devuelve: org.apache.catalina.connector.RequestFacade@183bff  8
 
 //aqui hacer lo que voy a hacer con el atribute del request ....
 
 //devuelve a la pagina el mensaje 
	return "Hola, " + name;
}
 
-----------------------------------------------
 
        NOTESE: que aqui el request es org.apache.catalina.connector.RequestFacade@183bff  8  
        mientras que anteriormente era de tipo org.apache.catalina.core.ApplicationHttpRequest@1f  ba15d
 
        porque sucede esto?
 
        sera que WebContext no devuelve el objeto request original o que significa requestFacade?
 
Espero que me puedan ayudar, por favor...
 
Gracias. 
   
 



