09/06/2014, 11:32
|
| Colaborador | | Fecha de Ingreso: octubre-2004
Mensajes: 3.774
Antigüedad: 20 años, 1 mes Puntos: 454 | |
Respuesta: Web Service que se ejecuta varias veces al mismo tiempo Hola:
Glassfish entiendo que gestiona bien las conexiones. Si has puesto un web service, lo normal es que sea una clase que esté en un servlet espceífico de jax-ws y no se haga mas que una sola instancia de esa clase en todo glassfish. Cualquier atributo de la clase sea o no static (en tu ejemplo Persona pers) es compartido para todas las llamadas, por lo que si tienes varias peticiones simultaneas (una petición sin que haya acabado la anterior), pueden "machacar" ese atributo.
Intenta hacerlo usando solo variables locales de los métodos (en el ejemplo que pones es inmediato) y si no es posible, guarda esos valores bien en la sesión web, o bien déjalo como atributo de clase pero usa "synchronized" desde el primer método donde recibes la llamada, aunque no es buena idea porque un cliente tendrá que esperar a que termine el anterior.
Se bueno. |