Foros del Web » Programación para mayores de 30 ;) » Java »

Recuperar o Compartir Sesion Java

Estas en el tema de Recuperar o Compartir Sesion Java en el foro de Java en Foros del Web. Hola ¿Puedo almacenar la sesion de una llamada desde cliente, y hacer que otra llamada de cliente recupere o comparta la misma sesion en apache? ...
  #1 (permalink)  
Antiguo 05/10/2015, 12:45
 
Fecha de Ingreso: noviembre-2014
Mensajes: 22
Antigüedad: 9 años, 5 meses
Puntos: 0
Recuperar o Compartir Sesion Java

Hola

¿Puedo almacenar la sesion de una llamada desde cliente, y hacer que otra llamada de cliente recupere o comparta la misma sesion en apache?

Saludos
  #2 (permalink)  
Antiguo 06/10/2015, 00:44
Avatar de Profesor_Falken  
Fecha de Ingreso: agosto-2014
Ubicación: Mountain View
Mensajes: 1.323
Antigüedad: 9 años, 8 meses
Puntos: 182
Respuesta: Recuperar o Compartir Sesion Java

Buenas,

Si, el uso de sesiones es habitual y normalmente necesario en las aplicaciones web,dada la naturaleza stateless del protocolo HTTP.

En java se resuelve mediante el objecto HTTPSession.
Código Java:
Ver original
  1. HttpSession session = request.getSession();
  2.         ShoppingCart cart =
  3.             (ShoppingCart)session.
  4.                 getAttribute("cart");

http://tutorials.jenkov.com/java-ser...tpsession.html
O algo mas avanzado:
http://www.journaldev.com/1907/java-...-url-rewriting

Un saludo
__________________
If to err is human, then programmers are the most human of us
  #3 (permalink)  
Antiguo 06/10/2015, 15:35
 
Fecha de Ingreso: noviembre-2014
Mensajes: 22
Antigüedad: 9 años, 5 meses
Puntos: 0
Respuesta: Recuperar o Compartir Sesion Java

Hola

Lo ideal seria compartir la sesion entre los diferentes clientes , ya que es un terminal que se conecta a webservices , y mantener la sesion mientras el terminal este ejecutandose

Saludos
  #4 (permalink)  
Antiguo 07/10/2015, 00:51
Avatar de Profesor_Falken  
Fecha de Ingreso: agosto-2014
Ubicación: Mountain View
Mensajes: 1.323
Antigüedad: 9 años, 8 meses
Puntos: 182
Respuesta: Recuperar o Compartir Sesion Java

Buenas,

Estamos hablando de Webservices entonces? Porque no lo has indicado?

Que has utilizado para desarrollar los Web Services? Has usado una implementacion de JAX-WS?


Un saludo
__________________
If to err is human, then programmers are the most human of us
  #5 (permalink)  
Antiguo 07/10/2015, 02:07
 
Fecha de Ingreso: noviembre-2014
Mensajes: 22
Antigüedad: 9 años, 5 meses
Puntos: 0
Respuesta: Recuperar o Compartir Sesion Java

Hola

Estamos usando Tomcat 7.0 de Apache , mediante eclipse

Saludos
  #6 (permalink)  
Antiguo 07/10/2015, 02:14
 
Fecha de Ingreso: noviembre-2014
Mensajes: 22
Antigüedad: 9 años, 5 meses
Puntos: 0
Respuesta: Recuperar o Compartir Sesion Java

Hola

Usando JAX-WS

Saludos
  #7 (permalink)  
Antiguo 07/10/2015, 03:03
Avatar de Profesor_Falken  
Fecha de Ingreso: agosto-2014
Ubicación: Mountain View
Mensajes: 1.323
Antigüedad: 9 años, 8 meses
Puntos: 182
Respuesta: Recuperar o Compartir Sesion Java

Buenas,

La clave esta en el codigo cliente.
Para mantener la session entre las diferentes llamadas tienes que asegurar que que se utiliza siempre el mismo port/proxy. Y sobre dicho port indicar que se debe conservar la sesion.

Código Java:
Ver original
  1. ((BindingProvider)port).getRequestContext().put(BindingProvider.SESSION_MAINTAIN_PROPERTY, true);

De esta forma Jax-WS se encarga de gestionar y enviar en cada llamada la cookie de sesion.

Lo importante es asegurarse de reutilizar el mismo port y no crear uno nuevo para cada llamada.


Un saludo
__________________
If to err is human, then programmers are the most human of us
  #8 (permalink)  
Antiguo 07/10/2015, 04:30
 
Fecha de Ingreso: noviembre-2014
Mensajes: 22
Antigüedad: 9 años, 5 meses
Puntos: 0
Respuesta: Recuperar o Compartir Sesion Java

Hola

Con eso se mantiene la sesion , y aun es mas fácil ,

si se pone

port.setMaintenance(true)

Se mantiene la sesion , pero no se comparte entre los diferentes proxy ,que es lo que nos interesa.

Saludos
  #9 (permalink)  
Antiguo 07/10/2015, 05:04
Avatar de Profesor_Falken  
Fecha de Ingreso: agosto-2014
Ubicación: Mountain View
Mensajes: 1.323
Antigüedad: 9 años, 8 meses
Puntos: 182
Respuesta: Recuperar o Compartir Sesion Java

Cita:
port.setMaintenance(true)
Eso no se que es pero desde luego no es JAX-WS.

Si te refieres a port.setMaintainSession(true); entonces estais utilizando Axis, no JAX-WS. Precisamente por eso preguntaba que utilizabais.

Cita:
pero no se comparte entre los diferentes proxy
Hablabas de mantener la sesion de las llamadas realizadas desde un terminal (mantener la sesion mientras el terminal este ejecutandose) por lo que no entiendo porque deben haber varios proxies.

Si lo que quereis es que distintos terminales/proxyes compartan la misma sesion, eso no se puede hacer por HTTP. Seria como querer compartir la misma session en navegadores distintos en ordenadores diferentes.

Para hacerlo rendreis que inventaros vosotros algun mecanismo para mantener una sesion aplicativa.
Para ello debereis implementar una operacion de login en sesion que devuelva un identificador de session activa y luego el proxy/terminal debera reenviar dicho identificador compartido en cada llamada. A partir de dicho identificador el web service tendra que ser capaz de recuperar el contexto.

Un saludo
__________________
If to err is human, then programmers are the most human of us

Última edición por Profesor_Falken; 07/10/2015 a las 05:09
  #10 (permalink)  
Antiguo 07/10/2015, 05:29
 
Fecha de Ingreso: noviembre-2014
Mensajes: 22
Antigüedad: 9 años, 5 meses
Puntos: 0
Respuesta: Recuperar o Compartir Sesion Java

Hola

OK ,,muchas gracias por la ayuda

Saludos

Etiquetas: Ninguno
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 06:18.