Los frijoles de sesión con estado no obtienen valores predeterminados después de la deserialización

StackOverflow https://stackoverflow.com/questions/6831751

  •  27-10-2019
  •  | 
  •  

Pregunta

Estaba pasando por un libro EJB 3.1 (O'Reilly, Andrew Lee Rubinger y Bill Burke), allí el autor menciona que (estas no son las palabras exactas en el libro, esta es mi propia comprensión del texto):

En SFSB, cuando se active (después de salir de la piscina pasivada), los objetos serializados, a diferencia de su norma original, no devolverán los valores predeterminados como INT no se garantizará que devuelva 0 y el objeto no se garantice que devuelva nulo

¿Es correcto mi comprensión? Si es cierto, ¿por qué EJB tiene este comportamiento?

Publicación original en http://www.coderanch.com/t/546765/java-ejb-scbcd/certification/why-serialization-unpredictable-sfsb#2481285

¿Fue útil?

Solución

Por especificación que solo es aplicable a los campos transitorios.

De las especificaciones: O'Reilly no diseñó EJBS (solo diciendo ...):

"Mientras el contenedor no es necesario para usar el protocolo de serialización para que el lenguaje de programación de Java almacene el estado de una instancia de sesión pasivada, debe lograr el resultado equivalente. La única excepción es que los contenedores no están obligados a restablecer el valor de campos transitorios durante la activación [12]. Declarar los campos de la sesión de la sesión como transitorio es, en general, desanimarse ". [EJB 3.1 - 4.2.1 - énfasis mío]

editar:

Por cierto, la respuesta a su pregunta también está en la especificación EJB:

"Las restricciones sobre el uso de campos transitorios aseguran que los contenedores puedan usar la serialización de Java durante la pasivación y la activación".

EJB 3.1 SPEC (Mirror/PDF)

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top