Visualizzazione dei risultati da 1 a 6 su 6
  1. #1

    Problema Serializzazione java

    Mi si è presentato un problema di serializzazione. Praticamente il mio programma salva un oggetto serializzato e, quando serve, lo ricarica. Fin qui nessun problema se non per il fatto che ora, dopo aver aggiornato java, mi esce questo errore:
    codice:
    java.io.InvalidClassException: javax.swing.JViewport; local class incompatible: stream classdesc serialVersionUID = 7371606312039135023, local class serialVersionUID = 81741356107154086
    	at java.io.ObjectStreamClass.initNonProxy(Unknown Source)
    	at java.io.ObjectInputStream.readNonProxyDesc(Unknown Source)
    	at java.io.ObjectInputStream.readClassDesc(Unknown Source)
    	at java.io.ObjectInputStream.readOrdinaryObject(Unknown Source)
    	at java.io.ObjectInputStream.readObject0(Unknown Source)
    	at java.io.ObjectInputStream.defaultReadFields(Unknown Source)
    	at java.io.ObjectInputStream.readSerialData(Unknown Source)
    	at java.io.ObjectInputStream.readOrdinaryObject(Unknown Source)
    	at java.io.ObjectInputStream.readObject0(Unknown Source)
    	at java.io.ObjectInputStream.readObject(Unknown Source)
    	at java.awt.Component.readObject(Unknown Source)
    	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    	at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
    	at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
    	at java.lang.reflect.Method.invoke(Unknown Source)
    	at java.io.ObjectStreamClass.invokeReadObject(Unknown Source)
    	at java.io.ObjectInputStream.readSerialData(Unknown Source)
    	at java.io.ObjectInputStream.readOrdinaryObject(Unknown Source)
    	at java.io.ObjectInputStream.readObject0(Unknown Source)
    	at java.io.ObjectInputStream.defaultReadFields(Unknown Source)
    	at java.io.ObjectInputStream.readSerialData(Unknown Source)
    	at java.io.ObjectInputStream.readOrdinaryObject(Unknown Source)
    	at java.io.ObjectInputStream.readObject0(Unknown Source)
    	at java.io.ObjectInputStream.readObject(Unknown Source)
    	at java.util.HashMap.readObject(Unknown Source)
    	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    	at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
    	at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
    	at java.lang.reflect.Method.invoke(Unknown Source)
    	at java.io.ObjectStreamClass.invokeReadObject(Unknown Source)
    	at java.io.ObjectInputStream.readSerialData(Unknown Source)
    	at java.io.ObjectInputStream.readOrdinaryObject(Unknown Source)
    	at java.io.ObjectInputStream.readObject0(Unknown Source)
    	at java.io.ObjectInputStream.defaultReadFields(Unknown Source)
    	at java.io.ObjectInputStream.readSerialData(Unknown Source)
    	at java.io.ObjectInputStream.readOrdinaryObject(Unknown Source)
    	at java.io.ObjectInputStream.readObject0(Unknown Source)
    	at java.io.ObjectInputStream.readObject(Unknown Source)
    	at menu.Carica_Web.prova(Carica_Web.java:76)
    	at menu.Carica_Web.actionPerformed(Carica_Web.java:55)
    	at javax.swing.AbstractButton.fireActionPerformed(Unknown Source)
    	at javax.swing.AbstractButton$Handler.actionPerformed(Unknown Source)
    	at javax.swing.DefaultButtonModel.fireActionPerformed(Unknown Source)
    	at javax.swing.DefaultButtonModel.setPressed(Unknown Source)
    	at javax.swing.AbstractButton.doClick(Unknown Source)
    	at javax.swing.plaf.basic.BasicMenuItemUI.doClick(Unknown Source)
    	at javax.swing.plaf.basic.BasicMenuItemUI$Handler.mouseReleased(Unknown Source)
    	at java.awt.Component.processMouseEvent(Unknown Source)
    	at javax.swing.JComponent.processMouseEvent(Unknown Source)
    	at java.awt.Component.processEvent(Unknown Source)
    	at java.awt.Container.processEvent(Unknown Source)
    	at java.awt.Component.dispatchEventImpl(Unknown Source)
    	at java.awt.Container.dispatchEventImpl(Unknown Source)
    	at java.awt.Component.dispatchEvent(Unknown Source)
    	at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source)
    	at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source)
    	at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source)
    	at java.awt.Container.dispatchEventImpl(Unknown Source)
    	at java.awt.Window.dispatchEventImpl(Unknown Source)
    	at java.awt.Component.dispatchEvent(Unknown Source)
    	at java.awt.EventQueue.dispatchEventImpl(Unknown Source)
    	at java.awt.EventQueue.access$200(Unknown Source)
    	at java.awt.EventQueue$3.run(Unknown Source)
    	at java.awt.EventQueue$3.run(Unknown Source)
    	at java.security.AccessController.doPrivileged(Native Method)
    	at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source)
    	at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source)
    	at java.awt.EventQueue$4.run(Unknown Source)
    	at java.awt.EventQueue$4.run(Unknown Source)
    	at java.security.AccessController.doPrivileged(Native Method)
    	at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source)
    	at java.awt.EventQueue.dispatchEvent(Unknown Source)
    	at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
    	at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
    	at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
    	at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
    	at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
    	at java.awt.EventDispatchThread.run(Unknown Source)
    Da quanto ho letto su internet il problema potrebbe essere il fatto che ho una diversa versione della virtual machine. Ma ora come faccio? E poi per poter leggere quel file non dovrei più aggiornare java? Mi sembra una cosa abbastanza strana... Qualcuno ha qualche idea su come risolvere? Grazie

  2. #2
    Utente di HTML.it L'avatar di Alex'87
    Registrato dal
    Aug 2001
    residenza
    Verona
    Messaggi
    5,802
    Dalla documentazione di JViewPort (e di tutti i componenti Swing in genere...):

    Warning: Serialized objects of this class will not be compatible with future Swing releases. The current serialization support is appropriate for short term storage or RMI between applications running the same version of Swing. As of 1.4, support for long term storage of all JavaBeansTM has been added to the java.beans package. Please see XMLEncoder.
    SpringSource Certified Spring Professional | Pivotal Certified Enterprise Integration Specialist
    Di questo libro e degli altri (blog personale di recensioni libri) | ​NO M.P. TECNICI

  3. #3
    E come potrei risolvere il problema?

  4. #4
    Utente di HTML.it L'avatar di Alex'87
    Registrato dal
    Aug 2001
    residenza
    Verona
    Messaggi
    5,802
    Originariamente inviato da hispanico92
    E come potrei risolvere il problema?
    Warning: Serialized objects of this class will not be compatible with future Swing releases. The current serialization support is appropriate for short term storage or RMI between applications running the same version of Swing. As of 1.4, support for long term storage of all JavaBeansTM has been added to the java.beans package. Please see XMLEncoder.
    SpringSource Certified Spring Professional | Pivotal Certified Enterprise Integration Specialist
    Di questo libro e degli altri (blog personale di recensioni libri) | ​NO M.P. TECNICI

  5. #5
    Si, ho letto. Il problema è che io ho già il file serializzato e, da quanto c'è scritto, XMLEncoder crea e legge file XML. Quindi non potrei caricare il file già salvato ma, dovrei, quindi ricompilare tutto il programma...

  6. #6
    Una domanda: ma se io creo una classe, estendo una jtextarea e implemento la serializzazione, quando aggiorno java e cambia la serialVersionUID, cambia anche alla mia nuova classe?

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.