Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/329.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
java.lang.NoClassDefFoundError:java.sql.Date在基于eclipse的应用程序中,使用Java9运行时_Java_Osgi_Java 9 - Fatal编程技术网

java.lang.NoClassDefFoundError:java.sql.Date在基于eclipse的应用程序中,使用Java9运行时

java.lang.NoClassDefFoundError:java.sql.Date在基于eclipse的应用程序中,使用Java9运行时,java,osgi,java-9,Java,Osgi,Java 9,我想测试我们的RCP应用程序是否在Java9运行时上运行 我已经将基于eclipseMars的RCP应用程序更新为最新的Mars版本,以便从osgi的角度运行它 现在我得到一个新的例外: java.lang.NoClassDefFoundError: java.sql.Date at org.apache.axis.encoding.DefaultTypeMappingImpl.class$(DefaultTypeMappingImpl.java:120) at org.apache.axis.

我想测试我们的RCP应用程序是否在Java9运行时上运行

我已经将基于eclipseMars的RCP应用程序更新为最新的Mars版本,以便从osgi的角度运行它

现在我得到一个新的例外:

java.lang.NoClassDefFoundError: java.sql.Date
at org.apache.axis.encoding.DefaultTypeMappingImpl.class$(DefaultTypeMappingImpl.java:120)
at org.apache.axis.encoding.DefaultTypeMappingImpl.initMappings(DefaultTypeMappingImpl.java:206)
at org.apache.axis.encoding.DefaultTypeMappingImpl.<init>(DefaultTypeMappingImpl.java:91)
at org.apache.axis.encoding.DefaultTypeMappingImpl.getSingletonDelegate(DefaultTypeMappingImpl.java:85)
at org.apache.axis.encoding.TypeMappingRegistryImpl.<init>(TypeMappingRegistryImpl.java:155)
at org.apache.axis.encoding.TypeMappingRegistryImpl.<init>(TypeMappingRegistryImpl.java:149)
at org.apache.axis.deployment.wsdd.WSDDDeployment.<init>(WSDDDeployment.java:449)
at org.apache.axis.deployment.wsdd.WSDDDocument.setDocument(WSDDDocument.java:139)
at org.apache.axis.deployment.wsdd.WSDDDocument.<init>(WSDDDocument.java:65)
at org.apache.axis.configuration.FileProvider.configureEngine(FileProvider.java:179)
at org.apache.axis.AxisEngine.init(AxisEngine.java:172)
at org.apache.axis.AxisEngine.<init>(AxisEngine.java:156)
at org.apache.axis.client.AxisClient.<init>(AxisClient.java:52)
at org.apache.axis.client.Service.getAxisClient(Service.java:104)
at org.apache.axis.client.Service.<init>(Service.java:113)
...
at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
at java.base/jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
at java.base/java.lang.reflect.Constructor.newInstance(Constructor.java:488)
at java.base/java.lang.Class.newInstance(Class.java:558)
at org.eclipse.core.internal.registry.osgi.RegistryStrategyOSGI.createExecutableExtension(RegistryStrategyOSGI.java:184)
at org.eclipse.core.internal.registry.ExtensionRegistry.createExecutableExtension(ExtensionRegistry.java:905)
at org.eclipse.core.internal.registry.ConfigurationElement.createExecutableExtension(ConfigurationElement.java:243)
at org.eclipse.core.internal.registry.ConfigurationElementHandle.createExecutableExtension(ConfigurationElementHandle.java:55)
at org.eclipse.ui.internal.services.WorkbenchServiceRegistry.getSourceProviders(WorkbenchServiceRegistry.java:177)
at org.eclipse.ui.internal.services.SourceProviderService.readRegistry(SourceProviderService.java:108)
at org.eclipse.ui.internal.Workbench$47.runWithException(Workbench.java:2416)
at org.eclipse.ui.internal.StartupThreading$StartupRunnable.run(StartupThreading.java:32)
at org.eclipse.swt.widgets.RunnableLock.run(RunnableLock.java:35)
at org.eclipse.swt.widgets.Synchronizer.runAsyncMessages(Synchronizer.java:135)
at org.eclipse.swt.widgets.Display.runAsyncMessages(Display.java:4155)
at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3772)
at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:2989)
at org.eclipse.ui.internal.Workbench.access$9(Workbench.java:2894)
at org.eclipse.ui.internal.Workbench$5.run(Workbench.java:685)
at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:337)
at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:606)
at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:150)
at de.softproject.x4frontend.standalone.Application.start(Application.java:24)
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:380)
at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:235)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:564)
at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:669)
at org.eclipse.equinox.launcher.Main.basicRun(Main.java:608)
at org.eclipse.equinox.launcher.Main.run(Main.java:1515)
at org.eclipse.equinox.launcher.Main.main(Main.java:1488)
java.lang.NoClassDefFoundError:java.sql.Date
位于org.apache.axis.encoding.DefaultTypeMappingImpl.class$(DefaultTypeMappingImpl.java:120)
位于org.apache.axis.encoding.DefaultTypeMappingImpl.initMappings(DefaultTypeMappingImpl.java:206)
位于org.apache.axis.encoding.DefaultTypeMappingImpl.(DefaultTypeMappingImpl.java:91)
位于org.apache.axis.encoding.DefaultTypeMappingImpl.getSingletonDelegate(DefaultTypeMappingImpl.java:85)
位于org.apache.axis.encoding.TypeMappingRegistryImpl.(TypeMappingRegistryImpl.java:155)
位于org.apache.axis.encoding.TypeMappingRegistryImpl.(TypeMappingRegistryImpl.java:149)
位于org.apache.axis.deployment.wsdd.WSDDDeployment.(WSDDDeployment.java:449)
位于org.apache.axis.deployment.wsdd.WSDDDocument.setDocument(WSDDDocument.java:139)
位于org.apache.axis.deployment.wsdd.WSDDDocument.(WSDDDocument.java:65)
位于org.apache.axis.configuration.FileProvider.configureEngine(FileProvider.java:179)
位于org.apache.axis.AxisEngine.init(AxisEngine.java:172)
在org.apache.axis.AxisEngine上
位于org.apache.axis.client.AxisClient.(AxisClient.java:52)
位于org.apache.axis.client.Service.getAxisClient(Service.java:104)
位于org.apache.axis.client.Service(Service.java:113)
...
位于java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0(本机方法)
位于java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
位于java.base/jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
位于java.base/java.lang.reflect.Constructor.newInstance(Constructor.java:488)
位于java.base/java.lang.Class.newInstance(Class.java:558)
位于org.eclipse.core.internal.registry.osgi.RegistryStrategyOSGI.createExecutableExtension(RegistryStrategyOSGI.java:184)
位于org.eclipse.core.internal.registry.ExtensionRegistry.createExecutableExtension(ExtensionRegistry.java:905)
位于org.eclipse.core.internal.registry.ConfigurationElement.createExecutableExtension(ConfigurationElement.java:243)
位于org.eclipse.core.internal.registry.ConfigurationElementHandle.createExecutableExtension(ConfigurationElementHandle.java:55)
位于org.eclipse.ui.internal.services.WorkbenchServiceRegistry.getSourceProviders(WorkbenchServiceRegistry.java:177)
位于org.eclipse.ui.internal.services.SourceProviderService.readRegistry(SourceProviderService.java:108)
位于org.eclipse.ui.internal.Workbench$47.runWithException(Workbench.java:2416)
位于org.eclipse.ui.internal.StartupThreading$StartupRunnable.run(StartupThreading.java:32)
位于org.eclipse.swt.widgets.RunnableLock.run(RunnableLock.java:35)
位于org.eclipse.swt.widgets.Synchronizer.runasynchmessages(Synchronizer.java:135)
在org.eclipse.swt.widgets.Display.runAsyncMessages(Display.java:4155)上
在org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3772)上
位于org.eclipse.ui.internal.Workbench.runUI(Workbench.java:2989)
访问org.eclipse.ui.internal.Workbench.access$9(Workbench.java:2894)
位于org.eclipse.ui.internal.Workbench$5.run(Workbench.java:685)
位于org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:337)
位于org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:606)
位于org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:150)
位于de.softproject.x4frontend.standalone.Application.start(Application.java:24)
在org.eclipse.equinox.internal.app.eclipseeapphandle.run上(eclipseeapphandle.java:196)
位于org.eclipse.core.runtime.internal.adapter.eclipseeappluncher.runApplication(eclipseeappluncher.java:134)
位于org.eclipse.core.runtime.internal.adapter.eclipseeappluncher.start(eclipseeappluncher.java:104)
位于org.eclipse.core.runtime.adapter.EclipseStarter.run(EclipseStarter.java:380)
位于org.eclipse.core.runtime.adapter.EclipseStarter.run(EclipseStarter.java:235)
位于java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(本机方法)
位于java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
位于java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
位于java.base/java.lang.reflect.Method.invoke(Method.java:564)
位于org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:669)
位于org.eclipse.equinox.launcher.Main.basicRun(Main.java:608)
位于org.eclipse.equinox.launcher.Main.run(Main.java:1515)
位于org.eclipse.equinox.launcher.Main.Main(Main.java:1488)
我还向vm参数添加了--addmodules=java.se选项。但是,如果我开始使用或不使用此选项,则没有区别

源代码和编译目标是1.8,我只是想检查它是否在JRE 9上运行


我现在不知道我错过了什么。也许有人暗示我下一步可以尝试什么?也许osgi没有将模块识别为bundle

为了让它更清晰可见,我总结了错误通知单的结果:

Mars无法访问java.*模块,因此无法修复。氧气1a是第一个工作的平台版本

我用上面的异常结果做了一个最小的例子,它在氧气平台上工作

因此,如果需要在Java9中安全运行,基本上每个RCP应用程序都需要升级到Oxygen


有点遗憾的是,Java9并不像其他主要的Verison那样向后兼容。但让我们希望这是一个很好的投资:)

@Sorontur可能是火星上的一只虫子?Apache Axis是否可能是由直接委托给引导类加载程序的自定义类加载程序加载的?这就解释了这个问题。不能保证所有的平台类对引导加载程序都是可见的。@Sorontur您能向