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

serialVersionUID servlets

Estas en el tema de serialVersionUID servlets en el foro de Java en Foros del Web. hola foreros!! solo tengo curiosidad de el porque hay que declarar esto private static final long serialVersionUID = 10; en un servlet, si no la ...
  #1 (permalink)  
Antiguo 06/03/2006, 18:45
Avatar de stock  
Fecha de Ingreso: junio-2004
Ubicación: Monterrey NL
Mensajes: 2.390
Antigüedad: 19 años, 10 meses
Puntos: 53
serialVersionUID servlets

hola foreros!!

solo tengo curiosidad de el porque hay que declarar esto

private static final long serialVersionUID = 10;

en un servlet, si no la declaro, el eclipse me pone warning de que no esta declarada esa variable, imagino que la clase de la que extiende mi clase, osea HttpServlet obliga a poner este campo, peroooooooooo

para que se usa?? por que justo ese nombre??

bueno, estoy seguro que alguien debe saber!!

have funnnnnnn
  #2 (permalink)  
Antiguo 06/03/2006, 18:57
Avatar de stock  
Fecha de Ingreso: junio-2004
Ubicación: Monterrey NL
Mensajes: 2.390
Antigüedad: 19 años, 10 meses
Puntos: 53
mmmmmmmmmm chale, creo que publique 2 veces el mismo mensaje...... sorry

bueno, investigando por ahi, el API nadamas dice esto

serialVersionUID

private static final long serialVersionUID

serialVersionUID is the serial version UID

soooooooooo, esto no me dice mucho , buscando un poco mas encontre esto:

Cita:
Notice that there is a warning next to the line starting with public class HomeServlet. The warning is that you have not declared a field called serialVersionUID. This warning is generated for every class the implements the Serializable interface. Because the parent class HttpServlet implements this interface, you get this warning. For our purposes, creating field serialVersionUID is not necessary.
claro, claro, eso era lo que me suponia, pero no me dicen para que? solo me dicen que es necesario por que la superclase implementa la interface SErializable, bla bla bla......, perooooooooo no me dicen massssssss

bueno, espero que alguien sepa

have funnnnnnnnn
  #3 (permalink)  
Antiguo 07/03/2006, 02:29
 
Fecha de Ingreso: octubre-2003
Mensajes: 3.578
Antigüedad: 20 años, 6 meses
Puntos: 51
http://www.javapractices.com/Topic45.cjp

En resumen, se usa para cuando serializas una clase y la reconstruyes. El serialVersionUID de la clase original y la destino han de ser el mismo, si no casca. Si no incluyes tu el serialVersionUID, cada vez que compilas una clase te lo puede generar de nuevo, con lo que clases compatibles te darian como incompatibles, asi que por eso se pone explicitamente.
  #4 (permalink)  
Antiguo 07/03/2006, 12:05
Avatar de stock  
Fecha de Ingreso: junio-2004
Ubicación: Monterrey NL
Mensajes: 2.390
Antigüedad: 19 años, 10 meses
Puntos: 53
mmmmmmmmmmm gracias por la explicacion.......

ahora comprendo para que es ese serialVersionUID, ahora, me surge una nueva pregunta, jejejejjeje..........

como asigno el valor de la serializacion, hay alguna regla o condiciones? o simplemente asigo el que se me ocurra??

thanks Green!!
  #5 (permalink)  
Antiguo 07/03/2006, 17:06
 
Fecha de Ingreso: octubre-2003
Mensajes: 3.578
Antigüedad: 20 años, 6 meses
Puntos: 51
En principio le puedes poner el que te de la gana, pero a veces se suele poner el que le calcula el JDK segun su propia formula... por poner algo. En el Eclipse, por ejemplo, le puedes decir que por defecto te ponga el calculado, y te lo calcula y pone el. Pero vamos, si le pones un "1.0" vale lo mismo. Lo unico importante es que si dos versiones de clase son compatibles, tengan el mismo y si no son compatibles, que sean diferentes.

Son algo asi como un "identificador de versiones compatibles", pero el valor en si no tiene significado, solo si es igual o no a otro.
  #6 (permalink)  
Antiguo 10/03/2006, 18:16
Avatar de stock  
Fecha de Ingreso: junio-2004
Ubicación: Monterrey NL
Mensajes: 2.390
Antigüedad: 19 años, 10 meses
Puntos: 53
mmmmmmmmmmmmmmmm

ok ok, segun entiendo eso es para el manejo de versiones y compatibilidades......... thanks
  #7 (permalink)  
Antiguo 11/12/2009, 11:06
 
Fecha de Ingreso: octubre-2008
Mensajes: 24
Antigüedad: 15 años, 7 meses
Puntos: 0
Respuesta: serialVersionUID servlets

Cita:
Iniciado por stock Ver Mensaje
mmmmmmmmmmmmmmmm

ok ok, segun entiendo eso es para el manejo de versiones y compatibilidades......... thanks
Hola amigos, tengo un problema con respecto a este tema, yo he creado un reporte con ireport 3.0.0 que contiene crosstab, el problema en si es cuando invoco el reporte desde netbeans, ni siquiera abre el reporte, pero cuando quito el crosstab del reporte y lo mando a llamar, entonces si me abre el reporte, por lo tanto mi problema creo yo que esta porque me falta alguna libreria que utiliza el report o no se que, pero el error que me lanza es el siguiente:

Código HTML:
sourceId=null[severity=(ERROR 2), summary=(Exception generating report: javax.faces.FacesException: net.sf.jasperreports.engine.JRException: Error loading object from InputStream), detail=(Exception generating report: javax.faces.FacesException: net.sf.jasperreports.engine.JRException: Error loading object from InputStream)];|WARNING: FacesMessage(s) have been enqueued, but may not have been displayed.
pero cuando esta cargando, me he fijado que netbeans lanza lo siguiente:

Código:
Caused by: java.io.InvalidClassException: net.sf.jasperreports.crosstabs.base.JRBaseCrosstabGroup; local class incompatible: stream classdesc serialVersionUID = 7685014062058258277, local class serialVersionUID = -6144263542628036271
que aun no se donde tengo que modificarlo para ponerlo a la version 7..... que me dice, he revisado las clases y aparentemente ninguna utiliza Serializable, salvo aquellas que son propias de java como el ObjectStreamClass en donde he tratado de modificar el versionSerialUID pero no puedo modificarlo, alguna idea porfavor, estoy perdido y esos reportes los necesito para ayer o si pueden decirme como mostrar reportes matriciales desde ireport, las versiones del ireport en las que las he probado son: 3.0.0, 3.1.2, 3.6.7 y la de netbeans es 6.7, gracias....
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

SíEste tema le ha gustado a 1 personas (incluyéndote)




La zona horaria es GMT -6. Ahora son las 09:59.