Worklight 5.0.5:运行Application Builder时出现加载程序约束违规

时间:2013-03-26 14:50:59

标签: ibm-mobilefirst classloader

在worklight应用程序的“Build All and Deploy”期间,我收到以下错误。

An internal error occurred during: "Worklight application builder". 
loader constraint violation: when resolving method "org.apache.commons.io.FileUtils.iterateFiles(Ljava/io/File;Lorg/apache/commons/io/filefilter/IOFileFilter;Lorg/apache/commons/io/filefilter/IOFileFilter;)Ljava/util/Iterator;" 
the class loader (instance of org/eclipse/osgi/internal/baseadaptor/DefaultClassLoader) 
of the current class, com/worklight/builder/skins/impl/SkinBuilderImpl, 
and the class loader (instance of org/eclipse/osgi/internal/baseadaptor/DefaultClassLoader) 
for resolved class, org/apache/commons/io/FileUtils, 
have different Class objects for the type leUtils.iterateFiles(Ljava/io/File;Lorg/apache/commons/io/filefilter/IOFileFilter;Lorg/apache/commons/io/filefilter/IOFileFilter;)Ljava/util/Iterator; 
used in the signature

控制台输出

[2013-03-26 15:30:13]             Worklight Server started successfully on localhost:8080
[2013-03-26 15:30:13]             Activating Worklight project: AA...
[2013-03-26 15:30:28] FWLSE3005I: Application raw reports are disabled.
[2013-03-26 15:30:28] FWLST0010I: ====== Started server for project AA-project-customization; Worklight version=5.0.5.20130115-0926-developer-edition
[2013-03-26 15:30:28]             Activation done.
[2013-03-26 15:30:28]             Starting build process: application 'ap', all environments

我相信这个错误也在https://www.ibm.com/developerworks/forums/thread.jspa?threadID=465649(只读)

中讨论过

对我而言,这个bug似乎非常可重复。 每次安装另一个包含/使用org.apache.commons.io包

的插件时都会发生这种情况

在我的情况下,我的插件文件夹(由Sonar 2.4.0提供)中有一个org.apache.commons.io_2.0.1.v201105210651.jar。它包含与plugins \ com.worklight.worklight-3rd-parties_5.0.5.20130115-0926 \ target \ dependency相同的java类。

这也是一个排序问题,因为只有在安装了另一个org.apache.commons.io-using软件包之后安装Worklight时才会出现错误。

所以我坚信问题是因为有不同的类具有相同的(包)名称(为什么?) 我考虑过设置classloader首选项(父亲首先等)。但我不知道如何,我不知道在哪里设置。

删除第三方.jar只会导致其他错误...

非常感谢任何提示。 非常感谢你!

1 个答案:

答案 0 :(得分:0)

作为一种解决方法,你可以尝试从你的eclipse中删除commons.io插件吗? 希望Sonar使用import-package而不是require-bundle,它会起作用,这样Worklight就不会有冲突。