Foros del Web

Foros del Web (http://www.forosdelweb.com/)
-   Java (http://www.forosdelweb.com/f45/)
-   -   serialVersionUID servlets (http://www.forosdelweb.com/f45/serialversionuid-servlets-376231/)

stock 06/03/2006 18:45

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 :adios:

stock 06/03/2006 18:57

mmmmmmmmmm chale, creo que publique 2 veces el mismo mensaje...... sorry :neurotico

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 :-D

have funnnnnnnnn :adios:

GreenEyed 07/03/2006 02:29

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.

stock 07/03/2006 12:05

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!! :adios:

GreenEyed 07/03/2006 17:06

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.

stock 10/03/2006 18:16

mmmmmmmmmmmmmmmm

ok ok, segun entiendo eso es para el manejo de versiones y compatibilidades......... thanks :-D

patok 11/12/2009 11:06

Respuesta: serialVersionUID servlets
 
Cita:

Iniciado por stock (Mensaje 1459604)
mmmmmmmmmmmmmmmm

ok ok, segun entiendo eso es para el manejo de versiones y compatibilidades......... thanks :-D

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....


La zona horaria es GMT -6. Ahora son las 22:27.

Desarrollado por vBulletin® Versión 3.8.7
Derechos de Autor ©2000 - 2025, Jelsoft Enterprises Ltd.