Castor库中的NoClassDefFoundError

时间:2012-03-30 18:33:07

标签: java playlist castor

我正在尝试使用Lizzy库(http://lizzy.sourceforge.net/)来进行一些播放列表操作。作为依赖项,它要求我在构建路径中拥有Castor库(http://www.castor.org/)。所以我去了网站,下载了Castor 1.3.1,然后把.jar放到我的构建路径中。

但是,当我尝试运行此行代码以将特定播放列表文件转换为通用播放列表对象时:

specificPlaylist = SpecificPlaylistFactory.getInstance().readFrom(playlistFile);

我最终得到NoClassDefFoundError:

Exception in thread "AWT-EventQueue-0" java.lang.NoClassDefFoundError: org/exolab/castor/core/exceptions/CastorException
    at java.lang.ClassLoader.defineClass1(Native Method)
    at java.lang.ClassLoader.defineClassCond(Unknown Source)
    at java.lang.ClassLoader.defineClass(Unknown Source)
    at java.security.SecureClassLoader.defineClass(Unknown Source)
    at java.net.URLClassLoader.defineClass(Unknown Source)
    at java.net.URLClassLoader.access$000(Unknown Source)
    at java.net.URLClassLoader$1.run(Unknown Source)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(Unknown Source)
    at java.lang.ClassLoader.loadClass(Unknown Source)
    at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
    at java.lang.ClassLoader.loadClass(Unknown Source)
    at java.lang.ClassLoader.defineClass1(Native Method)
    at java.lang.ClassLoader.defineClassCond(Unknown Source)
    at java.lang.ClassLoader.defineClass(Unknown Source)
    at java.security.SecureClassLoader.defineClass(Unknown Source)
    at java.net.URLClassLoader.defineClass(Unknown Source)
    at java.net.URLClassLoader.access$000(Unknown Source)
    at java.net.URLClassLoader$1.run(Unknown Source)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(Unknown Source)
    at java.lang.ClassLoader.loadClass(Unknown Source)
    at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
    at java.lang.ClassLoader.loadClass(Unknown Source)
    at org.exolab.castor.mapping.Mapping.<init>(Mapping.java:81)
    at christophedelory.xml.XmlSerializer.getMapping(XmlSerializer.java:100)
    at christophedelory.playlist.asx.AsxProvider.readFrom(AsxProvider.java:202)
    at christophedelory.playlist.SpecificPlaylistFactory.readFrom(SpecificPlaylistFactory.java:132)
    at christophedelory.playlist.SpecificPlaylistFactory.readFrom(SpecificPlaylistFactory.java:168)
    ...

我错过了.jar文件吗?我设法创建了一个CastorException类的实例(但是它与异常所讨论的包不同)。我认为基本的Castor-1.3.1.jar文件包含了所需的所有类。

其他信息:我正在尝试解码.wpl播放列表文件,Lizzy应该支持该文件。我的构建路径如下所示:

My Build Path

感谢您的帮助。

1 个答案:

答案 0 :(得分:2)

你可以轻松地在Castor jar中查看使用各种工具的内容 - WinZip恰好是我的首选工具。你会发现虽然有一个CastorException,但它是在错误的包中。

查看1.3.1下的old downloads page,我看到了Castor-1.3.1-core.jar。看一下,我在正确的包中看到了CastorException。您可能还需要其他罐子 - 我会查阅文档,或者通过反复试验继续,或者尝试找一个能告诉您的POM。