ObjectAid:未处理的事件循环异常

ROH*_*MAR 5 java eclipse eclipse-plugin objectaid

我正在尝试使用ObjectAidUML 图工具。

\n

当我尝试在 spring boot 项目
\n( \xe2\x8c\x98 + N -> ObjectAid Class Diagram ) 中为我的包创建 UML 图时,当我完成时,没有任何反应,窗口
保持原样,但在日志中,出现异常。

\n

看到这个图片

\n

每次我单击“完成”时都会出现以下异常:-

\n
java.lang.NoClassDefFoundError: Could not initialize class com.thoughtworks.xstream.converters.collections.PropertiesConverter\nat com.thoughtworks.xstream.XStream.setupConverters(XStream.java:647)\nat com.thoughtworks.xstream.XStream.<init>(XStream.java:445)\nat com.thoughtworks.xstream.XStream.<init>(XStream.java:385)\nat com.thoughtworks.xstream.XStream.<init>(XStream.java:342)\nat com.objectaid.uml.model.persistence.DiagramXStream.<init>(DiagramXStream.java:30)\nat com.objectaid.uml.model.diagram.DiagramFactory.createXStream(DiagramFactory.java:99)\nat com.objectaid.uml.model.diagram.DiagramFactory.getStream(DiagramFactory.java:89)\nat com.objectaid.uml.model.diagram.DiagramFactory.marshal(DiagramFactory.java:268)\nat com.objectaid.uml.model.diagram.DiagramFactory.marshalComplete(DiagramFactory.java:297)\nat com.objectaid.uml.editor.NewDiagramWizard.createNewFile(NewDiagramWizard.java:99)\nat com.objectaid.uml.editor.NewDiagramWizard.performFinish(NewDiagramWizard.java:59)\nat org.eclipse.jface.wizard.WizardDialog.finishPressed(WizardDialog.java:832)\nat org.eclipse.jface.wizard.WizardDialog.buttonPressed(WizardDialog.java:472)\nat org.eclipse.jface.dialogs.Dialog.lambda$0(Dialog.java:619)\nat org.eclipse.swt.events.SelectionListener$1.widgetSelected(SelectionListener.java:84)\nat org.eclipse.swt.widgets.TypedListener.handleEvent(TypedListener.java:252)\nat org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:89)\nat org.eclipse.swt.widgets.Display.sendEvent(Display.java:4441)\nat org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1512)\nat org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1535)\nat org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1520)\nat org.eclipse.swt.widgets.Widget.notifyListeners(Widget.java:1324)\nat org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:4227)\nat org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3837)\nat org.eclipse.jface.window.Window.runEventLoop(Window.java:823)\nat org.eclipse.jface.window.Window.open(Window.java:799)\nat org.eclipse.ui.internal.handlers.WizardHandler$New.executeHandler(WizardHandler.java:263)\nat org.eclipse.ui.internal.handlers.WizardHandler.execute(WizardHandler.java:283)\nat org.eclipse.ui.internal.handlers.HandlerProxy.execute(HandlerProxy.java:283)\nat org.eclipse.ui.internal.handlers.E4HandlerProxy.execute(E4HandlerProxy.java:97)\nat java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\nat java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:78)\nat java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\nat java.base/java.lang.reflect.Method.invoke(Method.java:567)\nat org.eclipse.e4.core.internal.di.MethodRequestor.execute(MethodRequestor.java:58)\nat org.eclipse.e4.core.internal.di.InjectorImpl.invokeUsingClass(InjectorImpl.java:319)\nat org.eclipse.e4.core.internal.di.InjectorImpl.invoke(InjectorImpl.java:253)\nat org.eclipse.e4.core.contexts.ContextInjectionFactory.invoke(ContextInjectionFactory.java:173)\nat org.eclipse.e4.core.commands.internal.HandlerServiceHandler.execute(HandlerServiceHandler.java:156)\nat org.eclipse.core.commands.Command.executeWithChecks(Command.java:488)\nat org.eclipse.core.commands.ParameterizedCommand.executeWithChecks(ParameterizedCommand.java:487)\nat org.eclipse.e4.core.commands.internal.HandlerServiceImpl.executeHandler(HandlerServiceImpl.java:213)\nat org.eclipse.ui.internal.handlers.LegacyHandlerService.executeCommand(LegacyHandlerService.java:389)\nat org.eclipse.ui.internal.actions.CommandAction.runWithEvent(CommandAction.java:142)\nat org.eclipse.jface.action.ActionContributionItem.handleWidgetSelection(ActionContributionItem.java:580)\nat org.eclipse.jface.action.ActionContributionItem.lambda$4(ActionContributionItem.java:414)\nat org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:89)\nat org.eclipse.swt.widgets.Display.sendEvent(Display.java:4441)\nat org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1512)\nat org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1535)\nat org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1520)\nat org.eclipse.swt.widgets.Widget.notifyListeners(Widget.java:1324)\nat org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:4227)\nat org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3837)\nat org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$5.run(PartRenderingEngine.java:1157)\nat org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:338)\nat org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.run(PartRenderingEngine.java:1046)\nat org.eclipse.e4.ui.internal.workbench.E4Workbench.createAndRunUI(E4Workbench.java:155)\nat org.eclipse.ui.internal.Workbench.lambda$3(Workbench.java:644)\nat org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:338)\nat org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:551)\nat org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:156)\nat org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:152)\nat org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:203)\nat org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:134)\nat org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:104)\nat org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:401)\nat org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:255)\nat java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\nat java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:78)\nat java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\nat java.base/java.lang.reflect.Method.invoke(Method.java:567)\nat org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:654)\nat org.eclipse.equinox.launcher.Main.basicRun(Main.java:591)\nat org.eclipse.equinox.launcher.Main.run(Main.java:1462)\n
Run Code Online (Sandbox Code Playgroud)\n

我在 Mac 上,按照官方页面的安装说明进行操作:https://www.objectaid.com/install-objectaid

\n

Eclipse 版本

\n
\n

面向企业 Java 和 Web 开发人员的 Eclipse IDE(包括\n孵化组件)

\n

版本:2021-06 (4.20.0) 内部版本号:20210612-2011

\n
\n

exo*_*_cw 8

看来ObjectAid 不再维护了。我在 JDK17 上运行时遇到此错误。

有一个解决方法:

  1. 下载xstream 1.4.18 jar
  2. 找到该com.objectaid.uml_1.2.4.jar文件并打开它(使用您选择的 zip 工具)
  3. 删除xstream-1.3.1.jarlib目录下的文件。将xstream-1.4.18.jar添加到lib目录中。
  4. 打开文件 META-INF/MANIFEST.MF 并将行替换lib/xstream-1.3.1.jarlib/xstream-1.4.18.jar.
  5. 添加eclipse.ini以下 vmargs:--add-opens=java.base/java.lang=ALL-UNNAMED --add-opens=java.base/java.util=ALL-UNNAMED --add-opens=java.base/java.text=ALL-UNNAMED --add-opens=java.desktop/java.awt.font=ALL-UNNAMED

重新启动 Eclipse-clean以确保清除 OSGI 缓存。