【发布时间】:2018-07-18 15:50:52
【问题描述】:
我安装了 64 位 Oxygen.2 并通过“更新软件”安装了 BIRT Framework。
尝试从 BIRT 的 GUI 呈现报告(以任何格式)时,我收到以下错误:
java.lang.NoClassDefFoundError: org/eclipse/jetty/util/Decorator
at org.eclipse.birt.report.viewer.utilities.ViewerWebApp.start(ViewerWebApp.java:40)
at org.eclipse.birt.report.viewer.utilities.AppServerWrapper.startJettyServer(AppServerWrapper.java:256)
at org.eclipse.birt.report.viewer.utilities.AppServerWrapper.start(AppServerWrapper.java:155)
at org.eclipse.birt.report.viewer.utilities.WebappAccessor.start(WebappAccessor.java:72)
at org.eclipse.birt.report.viewer.utilities.WebViewer.startWebApp(WebViewer.java:827)
at org.eclipse.birt.report.viewer.utilities.WebViewer.display(WebViewer.java:1078)
at org.eclipse.birt.report.viewer.utilities.WebViewer.display(WebViewer.java:1073)
at org.eclipse.birt.report.designer.ui.actions.PreviewSupport.preview(PreviewSupport.java:402)
at org.eclipse.birt.report.designer.ui.actions.PreviewSupport$3.widgetSelected(PreviewSupport.java:245)
at org.eclipse.swt.widgets.TypedListener.handleEvent(TypedListener.java:249)
at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:86)
at org.eclipse.swt.widgets.Display.sendEvent(Display.java:4428)
at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1079)
at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:4238)
at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3817)
at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$5.run(PartRenderingEngine.java:1150)
at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:336)
at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.run(PartRenderingEngine.java:1039)
at org.eclipse.e4.ui.internal.workbench.E4Workbench.createAndRunUI(E4Workbench.java:153)
at org.eclipse.ui.internal.Workbench.lambda$3(Workbench.java:680)
at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:336)
at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:594)
at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:148)
at org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:151)
at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:196)
at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:134)
at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:104)
at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:388)
at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:243)
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 org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:653)
at org.eclipse.equinox.launcher.Main.basicRun(Main.java:590)
at org.eclipse.equinox.launcher.Main.run(Main.java:1499)<br>
Caused by: java.lang.ClassNotFoundException: org.eclipse.jetty.util.Decorator cannot be found by org.eclipse.jetty.servlet_9.4.5.v20170502**
at org.eclipse.osgi.internal.loader.BundleLoader.findClassInternal(BundleLoader.java:484)
at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:395)
at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:387)
at org.eclipse.osgi.internal.loader.ModuleClassLoader.loadClass(ModuleClassLoader.java:150)
at java.lang.ClassLoader.loadClass(Unknown Source)
... 36 more
有人知道如何解决这个问题吗?
【问题讨论】:
-
org.eclipse.jetty.util.Decorator是jetty-util-<version>.jar的一部分。为什么它试图在jetty-servlet-<version>.jar中找到它? -
@JoakimErdfelt,你说得很好。我实际上不知道为什么它试图在 jetty-servlet-.jar 中找到它,我想无论是谁编写了它,他们都输入了错误的参考。您是否有机会知道是否可以在不重新编译的情况下更改为正确的指针等。这些引用是编码然后编译还是保存在某个外部 .xml 文件中?