2009-10-20 7 views
1

Je suis en train de desrialize un objet de type A situé dans le plugin C.plugin Eclipse sur le système classpath

Bien que mon plug-in a la dépendance appropriée sur plug-in C qui est de type A et peut également créer et instancier un objet de type A, quand j'essaye de déstratifier un objet de type A, il échoue.

La raison pour laquelle je crois est que les classes java.io. * qui sont en train de faire la désérialisation ne peuvent pas voir le type A.

Que dois-je mettre dans le manifeste de plug-in C, de sorte que les classes de système peuvent voir le type A?

Voici une trace de pile que je suis getting-

java.lang.ClassNotFoundException: com.chronon.sb.debug.model.TimeAndEventData à org.eclipse.osgi.internal.loader.BundleLoader. findClassInter nal (BundleLoader.java:494) à org.eclipse.osgi.internal.loader.BundleLoader.findClass (Bund leLoader.java:410) à org.eclipse.osgi.internal.loader.BundleLoader.findClass (Bund leLoader .java: 398) à org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.loa dClass (DefaultClassLoader.java:105) à java.lang.ClassLoader.loadClass (source inconnue) at java.lang.ClassLoader.loadClassInternal (source inconnue) at java.lang.Class.forName0 (méthode native) at java.lang.Class.forName (source inconnue) at java.io.ObjectInputStream.resolveClass (Inconnu Source) à java.io.ObjectInputStream.readNonProxyDesc (Source inconnue) à java.io.ObjectInputStream.readClassDesc (Source inconnue) à java.io.ObjectInputStream.readOrdinaryObject (Source inconnue) à java.io.ObjectInputStream.readObject0 (Source inconnue) à java.io.ObjectInputStream.readObject (source inconnue) à com.chronon.sb.recorder.commons.CompressorUtil.decompressObj ect (CompressorUtil.java:53) à com.chronon.sb.recorder. commons.CompressorUtil.decompressObj (Comprime sorUtil.java:36) à com.chronon.sb.debug.core.dbManagers.Events.createBlock (Même ts.java:134) à com.chronon.sb.debug.core.dbManagers.Events.getThreadForTime (Événements .java: 108) à com.chronon.sb.debug.core.helpers.MethodCallHelper. (MethodCallHelper.java:62) à com.chronon.sb.debug.core.helpers.MiscHelper.getVeryFirstMet hod (MiscHelper.java : 22) à com.placid.sb.browser.ui.startbrowse.StartBrowseJob $ 1.run (StartBrowseJob.java:86) à org.eclipse.swt.widgets.RunnableLock.run (RunnableLock.java:3 5) à org.eclipse.swt.widgets.Synchronizer.runAsyncMessages (Synchr onizer.java:134) à org.eclipse.swt.widgets.Display.runAsyncMessages (Display.jav a: 3855) à org.eclipse.swt. widgets.Display.readAndDispatch (Display.ja va: 3476) à org.eclipse.ui.internal.Workbench.runEventLoop (Workbench.jav a: 2405) à org.eclipse.ui.internal.Workbench.runUI (Workbench.java:2369) à org.eclipse .ui.internal.Workbench.access $ 4 (Workbench.java:22 21) à org.eclipse.ui.internal.Workbench $ 5.run (Workbench.java:500) à org.eclipse.core.databinding.observable. Realm.runWithDefault (Realm.java:332) à org.eclipse.ui.internal.Workbench.createAndRunWorkbench (Work bench.java:493) à org.eclipse.ui.PlatformUI.createAndRunWorkbench (PlatformUI.j ava: 149) à org.eclipse.ui.internal.ide.application.IDEApplication.start (IDEApplication.java:113) à org.eclipse.equinox.internal.app.EclipseAppHandle.run (Eclips eAppHandle.java:194) sur org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher .runApplication (EclipseAppLauncher.java:110) à org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher .start (EclipseAppLauncher.java:79) à org.eclipse.core.runtime.adaptor. EclipseStarter.run (EclipseS tarter.java:368) à org.eclipse.core.runtime.adaptor.EclipseStarter.run (EclipseS tarter.java:179) à sun.reflect.NativeMethodAccessorImpl.invoke0 (Méthode native) au soleil .reflect.NativeMethodAccessorImpl.invoke (source inconnue) à sun.reflect.DelegatingMethodAccessorImpl.invoke (source inconnue) à java.lang.reflect.Method.invoke (source inconnue) à org.eclipse.equinox.launcher.Main. invokeFramework (Main.java: 559) à org.eclipse.equinox.launcher.Main.basicRun (Main.java:5 14) à org.eclipse.equinox.launcher.Main.run (Main.java:1311) à org.eclipse.equinox.launcher.Main.main (Main.java:1287)

Répondre

1

Lisez sur les classloaders buddy (certaines informations plus détaillées sont here, en particulier la section sur les politiques de buddy intégrées).

La réponse courte est: vous avez besoin d'un MANIFESTE entrée

Eclipse-BuddyPolicy: boot 
Questions connexes