2012-01-12 81 views
1

嗨我正在使用Jackson库在GlassFish服务器上的NetBeans静默Web服务中使用JodaTime库。NetBeans平台上的java.lang.NoClassDefFoundError GlassFish for JodaTime库中的restful web服务

当我尝试创建在其中一个资源文件中使用JodaTime库的类的实例时,我得到org/joda/time/ReadablePartial的java.lang.NoClassDefFoundError。 E.g:

在studentResource文件:

 Controller c = new Controller(); 

凡Controller类的进口和使用JodaTime库

我检查,我需要的库项目。事实上,如果我在平静的Web服务之外运行一个单独的项目,一切都会顺利进行。是否有一个额外的类路径问题,我必须解决?

+0

你检查你没有可用的两个JAR在运行时? – kosa 2012-01-12 17:20:47

+0

啊我该如何检查? – 2012-01-13 10:02:34

回答

-1

好的,我找到了解决方案。显然,我需要做的只是将jar文件移动到库/ jar文件列表中。我在项目属性的库选项卡中执行此操作。更具体地说,jar文件必须移到REST库之上。

0

为了防止其他人绊倒这个问题,我们也遇到了与Glassfish 3.1.1,Jersey和Joda time的组合相似的问题。踪迹是这样的:

Caused by: java.lang.ClassNotFoundException: org.joda.time.ReadableInstant not found by jackson-mapper-asl [128] 
    at org.apache.felix.framework.BundleWiringImpl.findClassOrResourceByDelegation(BundleWiringImpl.java:1460) 

我刚刚发现被倾倒我们乔达时JAR进入副本的GlassFish /模块的解决方法。不完全是漂亮,但...

3

,以防有人使用时同样的问题绊倒春:

此问题出现了,如果你正在尝试JSON映射到使用杰克逊或者通过@RequestBody注释上的Java对象控制器参数或使用ObjectMapper()。手动反序列化readValue(json,Class.class)。本地机器上的一切工作正常,但是当将应用程序部署到GlassFish反序列化失败时。

Keeg将Joda-Time.jar复制到glassfish/modules并重新启动的解决方法解决了该问题。

似乎是一个错误开放有关JIRA这个问题: https://java.net/jira/browse/GLASSFISH-20808