Serialization 将Eclipse插件放在系统类路径上

Serialization 将Eclipse插件放在系统类路径上,serialization,eclipse-plugin,classpath,osgi,Serialization,Eclipse Plugin,Classpath,Osgi,我正在尝试对插件C中的A类型对象进行去序列化 虽然我的插件对类型为A的插件C具有适当的依赖性,并且还可以创建和实例化类型为A的对象,但当我尝试理想化类型为A的对象时,它失败了 我相信的原因是,实际执行反序列化的java.io.*类看不到类型A 我必须在插件C的清单中放入什么,以便系统类可以看到类型A 这是我得到的堆栈跟踪- java.lang.ClassNotFoundException:com.chron.sb.debug.model.TimeAndEventData 位于org.eclips

我正在尝试对插件C中的A类型对象进行去序列化

虽然我的插件对类型为A的插件C具有适当的依赖性,并且还可以创建和实例化类型为A的对象,但当我尝试理想化类型为A的对象时,它失败了

我相信的原因是,实际执行反序列化的java.io.*类看不到类型A

我必须在插件C的清单中放入什么,以便系统类可以看到类型A

这是我得到的堆栈跟踪-

java.lang.ClassNotFoundException:com.chron.sb.debug.model.TimeAndEventData 位于org.eclipse.osgi.internal.loader.BundleLoader.findclassinternal(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(未知源) 位于java.lang.ClassLoader.loadClassInternal(未知源) 位于java.lang.Class.forName0(本机方法) 位于java.lang.Class.forName(未知源) 位于java.io.ObjectInputStream.resolveClass(未知源) 位于java.io.ObjectInputStream.readNonProxyDesc(未知源) 位于java.io.ObjectInputStream.readClassDesc(未知源) 位于java.io.ObjectInputStream.ReadOrderinaryObject(未知源) 位于java.io.ObjectInputStream.readObject0(未知源) 位于java.io.ObjectInputStream.readObject(未知源) 在com.chron.sb.recorder.commons.CompressorUtil.decompressobject(CompressorUtil.java:53)上 位于com.chron.sb.recorder.commons.CompressorUtil.decompressObj(CompressorUtil.java:36) 在com.chron.sb.debug.core.dbManagers.Events.createBlock(甚至ts.java:134)上 在com.chron.sb.debug.core.dbManagers.Events.getThreadForTime(Events.java:108)上 位于com.chron.sb.debug.core.helpers.MethodCallHelper.(MethodCallHelper.java:62) 在com.chron.sb.debug.core.helpers.misselper.getVeryFirstMet-hod(misselper.java:22) 位于com.placid.sb.browser.ui.startbrowse.StartBrowseJob$1.run(St artBrowseJob.java:86) 位于org.eclipse.swt.widgets.RunnableLock.run(RunnableLock.java:35) 位于org.eclipse.swt.widgets.Synchronizer.runAsyncMessages(Synchr-onizer.java:134) 在org.eclipse.swt.widgets.Display.runAsyncMessages(Display.java:3855)上 在org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3476)上 位于org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java: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(Workbench.java:493) 位于org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:149) 位于org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:113) 在org.eclipse.equinox.internal.app.eclipseeapphandle.run上(eclipseeapphandle.java:194) 位于org.eclipse.core.runtime.internal.adapter.eclipseeappluncher.runApplication(eclipseeappluncher.java:110) 位于org.eclipse.core.runtime.internal.adapter.eclipseeappluncher.start(eclipseeappluncher.java:79) 位于org.eclipse.core.runtime.adapter.EclipseStarter.run(EclipseS tarter.java:368) 位于org.eclipse.core.runtime.adapter.EclipseStarter.run(EclipseS tarter.java:179) 在sun.reflect.NativeMethodAccessorImpl.invoke0(本机方法)处 位于sun.reflect.NativeMethodAccessorImpl.invoke(未知源) 在sun.reflect.DelegatingMethodAccessorImpl.invoke处(未知源) 位于java.lang.reflect.Method.invoke(未知源) 位于org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:559) 位于org.eclipse.equinox.launcher.Main.basicRun(Main.java:514) 位于org.eclipse.equinox.launcher.Main.run(Main.java:1311) 位于org.eclipse.equinox.launcher.Main.Main(Main.java:1287)


阅读buddy类加载器(更多详细信息,特别是关于内置buddy策略的部分)

简单的回答是:您需要一个清单条目

 Eclipse-BuddyPolicy: boot

阅读buddy类加载器(更多详细信息,特别是关于内置buddy策略的部分)

简单的回答是:您需要一个清单条目

 Eclipse-BuddyPolicy: boot