2012-01-12 121 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