2012-07-31 53 views
1

我一直在研究一个相当“标准”的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在这种类型的例外方面并没有那么有用。

你有什么建议吗?

+0

不幸的是,当有人说“NoClassDefFoundError”时,如果提供了这样一个例外的完整踪迹,那么猜测什么样的实际类缺失,当然更多的人能够回答你的问题。谢谢 – 2012-07-31 16:56:46

+0

真的是任何类。当我在启动时尝试创建ActorSystem时,它将是akka.actor.ActorSystem,如果我在飞行中创建任何东西,它可能是akka.util.Duration。我的猜测是,根本找不到图书馆里的东西。 – Lunikon 2012-07-31 17:09:44

回答

1

验证Eclipse中的部署程序集中是否存在所需的库(AKKA):打开项目的属性并在左侧查找“部署程序集”。

[我使用Eclipse靛蓝]

你可以通过检查tomcat下部署验证预期的jar文件的存在(或缺乏)。

+0

谢谢。那就是诀窍。虽然它仍然让我怀疑:我从来没有(明知)之前使用过这个窗格,它一直工作。现在我只是添加了Maven的依赖关系,它的工作......但它很奇怪。总之,非常感谢! – Lunikon 2012-07-31 18:25:04

+0

我无法肯定地说,但如果你已经完成了“Maven - > Update Project”(右键单击项目),那么Maven可能已经为你做了这些。 – 2012-07-31 18:35:38

相关问题