5

尝试在 Eclipse Equinox 上运行 grails 应用程序时出现运行时错误。

java.lang.NoClassDefFoundError: org/apache/commons/collections/Transformer

at java.lang.ClassLoader.defineClass1(Native Method)

at java.lang.ClassLoader.defineClassCond(ClassLoader.java:632)

at java.lang.ClassLoader.defineClass(ClassLoader.java:616)

at org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.defineClass(DefaultClassLoader.java:188)

at org.eclipse.osgi.baseadaptor.loader.ClasspathManager.defineClass(ClasspathManager.java:580)

at org.eclipse.osgi.baseadaptor.loader.ClasspathManager.findClassImpl(ClasspathManager.java:550)

at org.eclipse.osgi.baseadaptor.loader.ClasspathManager.findLocalClassImpl(ClasspathManager.java:481)

at org.eclipse.osgi.baseadaptor.loader.ClasspathManager.findLocalClass_LockClassLoader(ClasspathManager.java:469)

at org.eclipse.osgi.baseadaptor.loader.ClasspathManager.findLocalClass(ClasspathManager.java:449)

at org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.findLocalClass(DefaultClassLoader.java:216)

at org.eclipse.osgi.internal.loader.BundleLoader.findLocalClass(BundleLoader.java:393)

at org.eclipse.osgi.internal.loader.BundleLoader.findClassInternal(BundleLoader.java:469)

at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:422)

at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:410)

at org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.loadClass(DefaultClassLoader.java:107)

at java.lang.ClassLoader.loadClass(ClassLoader.java:248)

问题是我的包正在导入以下包com.springsource.org.apache.commons.collections; version="3.2.1" 在搜索 spring EBR 时,我发现包包含所需的类。

我使用监视工具来确保捆绑包正在运行。

可能是什么问题?

问候 ?

4

3 回答 3

4

根据您写的内容,您正在导入包com.springsource.org.apache.commons.collections,但这是一个 Spring 构建的 OSGi 版本的org.apache.commons.collections jar 文件。它是一个捆绑包,而不是一个包。

您的包必须导入org.apache.commons.collections,它由com.springsource.org.apache.commons.collections包提供。假设您已经将 Spring 包提供给运行时,您只需要修复 import 语句。

在您现有的清单中,更改(在您的 Import-Package 部分下):

com.springsource.org.apache.commons.collections;version="3.2.1"

org.apache.commons.collections;version="3.2.1"
于 2011-07-20T16:41:28.740 回答
2

您的捆绑包无法导入该包com.springsource.org.apache.commons.collections,因为没有这样的包。您可能的意思是您已经安装了具有该名称的捆绑包。

该错误意味着您的包没有导入包org.apache.commons.collections,即它必须出现在Import-Package您的包声明中的某处。

于 2011-07-20T17:30:30.793 回答
-1

将 commons-collections jar 文件添加到构建路径将解决此问题。

于 2011-07-20T16:49:04.037 回答