我一直在研究一个相当“标准”的Java Web应用程序,现在已经很长时间了。我使用Eclipse的服务器插件在Eclipse中进行开发,以在Tomcat中运行应用程序。该应用程序的设置非常简单:用于引导的Spring,用于Web的Wicket,用于ORM的Hibernate,用于依赖管理的Maven。从Java Web App使用(Scala)库,获取NoClassDefFoundError
今天我在项目中添加了Akka 2.0。我将它添加到我的POM按照手册:
<dependency>
<groupId>com.typesafe.akka</groupId>
<artifactId>akka-actor</artifactId>
<version>2.0.2</version>
</dependency>
Maven的发现依赖,我可以看到它显示在Eclipse的Package Explorer中的Maven依赖了。引用的Scala库也显示出来(版本2.9.2,看起来)。
我可以像使用期望的一样使用库:Eclipse可以找到类,我可以跳转到源文件等。一切正常。但是,一旦我启动应用程序,并且遇到引用Akka的程序的任何部分,它将引发NoClassDefFoundError。
由于所有其他库仍按预期工作,我最好的猜测是这与Akka是Scala开发的库有关。由于我自己很少使用Scala,所以我自己找不到任何解决方案,Google在这种类型的例外方面并没有那么有用。
你有什么建议吗?
不幸的是,当有人说“NoClassDefFoundError”时,如果提供了这样一个例外的完整踪迹,那么猜测什么样的实际类缺失,当然更多的人能够回答你的问题。谢谢 – 2012-07-31 16:56:46
真的是任何类。当我在启动时尝试创建ActorSystem时,它将是akka.actor.ActorSystem,如果我在飞行中创建任何东西,它可能是akka.util.Duration。我的猜测是,根本找不到图书馆里的东西。 – Lunikon 2012-07-31 17:09:44