/ Forside / Teknologi / Udvikling / Java / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
Java
#NavnPoint
molokyle 3688
Klaudi 855
strarup 740
Forvirret 660
gøgeungen 500
Teil 373
Stouenberg 360
vnc 360
pmbruun 341
10  mccracken 320
Enterprise Javabeans og VisualAge
Fra : Henry Vest


Dato : 30-04-02 17:44

Jeg er ved at programmere nogle Enterprise JavaBeans i VisualAge. De skal
køre på Websphere. Når jeg laver en ny EJB i VisualAge oprettes følgende
variabel:

private final static long serialVersionUID = 3206093459760846163L;

Er der nogen der kan forklare hvad det er? Er det noget specifikt for
VisualAge, eller er det noget der skal være i en EJB?


/Henry

 
 
Filip Larsen (30-04-2002)
Kommentar
Fra : Filip Larsen


Dato : 30-04-02 19:48


"Henry Vest" <henry_vest@get2net.dk> skrev i en meddelelse
news:3khmaa.3l1.ln@berlin.eu...
> Jeg er ved at programmere nogle Enterprise JavaBeans i VisualAge. De skal
> køre på Websphere. Når jeg laver en ny EJB i VisualAge oprettes følgende
> variabel:
>
> private final static long serialVersionUID = 3206093459760846163L;
>
> Er der nogen der kan forklare hvad det er? Er det noget specifikt for
> VisualAge, eller er det noget der skal være i en EJB?
>
>
> /Henry


Filip Larsen (30-04-2002)
Kommentar
Fra : Filip Larsen


Dato : 30-04-02 20:07

[Jeg beklager, at jeg i denne tråd ved en fejltagelse kom til at afsende et
"tomt" svar]

Henry Vest skrev

> private final static long serialVersionUID = 3206093459760846163L;
>
> Er der nogen der kan forklare hvad det er? Er det noget specifikt for
> VisualAge, eller er det noget der skal være i en EJB?

Det er en del af Javas object serialiseringsmekanisme og angiver kort sagt
et fingeraftryk af klassen der gemmes sammen med et serialiseret objekt .
Når objektet skal læses ind igen, sammenligner serialiseringsmekanismen det
gemte fingeraftryk med klassen "nye" fingeraftryk og melder fejl hvis ikke
de er ens. Værdien af serialVersionUID bliver dannet ud fra en omfattende
algoritme der gør bl.a. sikre at selv ret små ændringer i klassen giver en
ændret værdi.

Hvis man derfor ændre lidt i sin klasse (fx. tilføjer en metode), så kan man
altså ikke umiddelbart deserialisere objekter serialiseret med den forrige
version af klassen. Hvis ændringen ikke har nogen logisk betydning for
serialisering, så kan det jo godt være et problem, og løsning er så, at man
selv direkte i sin klasse angive serialVersionUID med en værdi svarende til
den klasse man er kompatible med. Normalt vil det sige, at man beholder
samme værdi for serialVersionUID indtil ændringer i klassen ikke længere er
kompatible med gamle serialiseringer hvorefter man opdatere værdien med
serialver programmet.

Se flere detajler på
http://java.sun.com/products/jdk/1.2/docs/guide/serialization/index.html og
http://java.sun.com/products/jdk/1.2/docs/guide/serialization/spec/class.doc
4.html


Mvh,
--
Filip Larsen <filip.larsen@mail.dk>





Henry Vest (06-05-2002)
Kommentar
Fra : Henry Vest


Dato : 06-05-02 18:03

Filip Larsen wrote:

<en hel masse>

Jeg takker (omend noget forsinket) for et udmærket svar.


/Henry


Søg
Reklame
Statistik
Spørgsmål : 177558
Tips : 31968
Nyheder : 719565
Indlæg : 6408926
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste