在Eclipse中启动Web预览服务器时,NoSuchMethodError Version.compareTo()

时间:2014-09-19 05:59:10

标签: eclipse websphere osgi websphere-8

在Eclipse(Kepler)中使用“用于开发和管理WebSphere®ApplicationServer V8.0L(或V8.5)的工具,我想在启动Web预览服务器时收到以下错误消息:

CWWKE0005E: The runtime environment could not be launched.
com.ibm.ws.kernel.boot.LaunchException: Caught unexpected exception java.lang.NoSuchMethodError: org/osgi/framework/Version.compareTo(Lorg/osgi/framework/Version;)I
    at com.ibm.ws.kernel.boot.internal.KernelBootstrap.rethrowException(KernelBootstrap.java:412)
    at com.ibm.ws.kernel.boot.internal.KernelBootstrap.go(KernelBootstrap.java:179)
    at com.ibm.ws.kernel.boot.Launcher.createPlatform(Launcher.java:131)
    at com.ibm.ws.kernel.boot.Launcher.main(Launcher.java:55)
    at com.ibm.ws.kernel.boot.cmdline.EnvCheck.main(EnvCheck.java:52)
Caused by: java.lang.NoSuchMethodError: org/osgi/framework/Version.compareTo(Lorg/osgi/framework/Version;)I
    at org.osgi.framework.VersionRange.isEmpty0(VersionRange.java:332)
    at org.osgi.framework.VersionRange.<init>(VersionRange.java:182)
    at com.ibm.ws.kernel.provisioning.VersionUtility.<clinit>(VersionUtility.java:28)
    at java.lang.J9VMInternals.initializeImpl(Native Method)
    at java.lang.J9VMInternals.initialize(J9VMInternals.java:228)
    at com.ibm.ws.kernel.boot.internal.KernelResolver$ResolverCache.checkEntry(KernelResolver.java:498)
    at com.ibm.ws.kernel.boot.internal.KernelResolver.<init>(KernelResolver.java:135)
    at com.ibm.ws.kernel.boot.internal.KernelBootstrap.go(KernelBootstrap.java:122)
    ... 3 more
CWWKE0018E: An exception occurred while launching the runtime environment: java.lang.NoSuchMethodError: org/osgi/framework/Version.compareTo(Lorg/osgi/framework/Version;)I

发生了什么事?我知道服务器内的某些东西试图使用一个没有所需方法的对象。但为什么?我该如何解决?

1 个答案:

答案 0 :(得分:0)

我发现了问题。在JRE定义中,我在默认VM参数中有java外部目录:

-Djava.ext.dirs=d:\ws8\java\jre\lib;d:\ws8\java\jre\lib\ext;d:\ws8\lib;d:\ws8\plugins

d:\ ws8是我的WebSphere 8.0的安装目录。显然,它们也含有很多osgi东西。

我知道这些设置在那里,我在其他一些情况下需要它们。但我没想到它们会导致其他IBM软件出现问题。

(感谢rlegendi的小踢。)