2009-06-08 4 views
0

Je reçois la trace de pile suivante. Je veux juste savoir quelle est votre première impression. Cela semble-t-il dire que les vecteurs ne peuvent pas être sauvegardés dans la DB de Berkeley. Quoi d'autre puis-je vous fournir, cela aidera à travailler cela.Est-ce que l'édition java de Berkeley DB supporte les vecteurs de sauvegarde

Exception in thread "Timer-0" java.lang.IllegalArgumentException: Class could not be loaded or is not persistent: java.util.Vector 
    at com.sleepycat.persist.impl.PersistCatalog.createFormat(PersistCatalog.java:588) 
    at com.sleepycat.persist.impl.FieldInfo.collectRelatedFormats(FieldInfo.java:131) 
    at com.sleepycat.persist.impl.ComplexFormat.collectRelatedFormats(ComplexFormat.java:262) 
    at com.sleepycat.persist.impl.PersistCatalog.createFormat(PersistCatalog.java:616) 
    at com.sleepycat.persist.impl.PersistCatalog.addNewFormat(PersistCatalog.java:805) 
    at com.sleepycat.persist.impl.PersistCatalog.getFormat(PersistCatalog.java:745) 
    at com.sleepycat.persist.impl.PersistEntityBinding.getOrCreateFormat(PersistEntityBinding.java:176) 
    at com.sleepycat.persist.impl.PersistEntityBinding.<init>(PersistEntityBinding.java:36) 
    at com.sleepycat.persist.impl.Store.getPrimaryIndex(Store.java:328) 
    at com.sleepycat.persist.EntityStore.getPrimaryIndex(EntityStore.java:257) 
    at db.LastTopMovesDA.<init>(LastTopMovesDA.java:24) 
    at dao.LastTopMove.saveLastTopMove(LastTopMove.java:59) 
    at model.logic.MoveFilter.getTopMoves(MoveFilter.java:172) 
    at controller.Poller$1.run(Poller.java:50) 
    at java.util.TimerThread.mainLoop(Unknown Source) 
    at java.util.TimerThread.run(Unknown Source) 

Répondre

1

Vous devez probablement sérialiser vos données avant de les transmettre à Berkeley DB pour le stockage.

+0

Je suis capable de sauvegarder un HashMap sans sérialisation. Y a-t-il quelque chose de différent entre les deux qui signifie que le Vector doit être sérialisé mais pas le HashMap? – Ankur

+0

Sans le savoir, je suppose que parce que HashMap a déjà une structure de valeur-clé, berkeley db gère son stockage de manière transparente, sérialiser la clé/paires de valeurs et les stocker dans la base de données. vous pourriez jeter un oeil à la docs pour plus d'informations (par exemple ) – ynimous

Questions connexes