2012-01-12 13 views
1

こんにちは、現在、Jacksonライブラリーを使用しているNetBeansの快適なWeb​​サービスでJodaTimeライブラリを使用しています。NetBeansジャーナルのjava.lang.NoClassDefFoundError JodaTimeライブラリ用GlassFishの快適なWeb​​サービス

リソースファイルの1つでJodaTimeライブラリを使用するクラスのインスタンスを作成しようとすると、org/joda/time/ReadablePartialのjava.lang.NoClassDefFoundErrorが返されます。 例えば:studentResourceファイルで

:コントローラクラスの輸入および使用JodaTimeライブラリが

私は、私は必要なライブラリがプロジェクトであることを確認している

 Controller c = new Controller(); 

。 実際、安らかなWebサービスの外に別のプロジェクトを実行すると、すべてがスムーズに実行されます。私が扱わなければならない追加のクラスパス問題はありますか?

+0

チェックしましたか? – kosa

+0

ああ、どうすればそれをチェックできますか? –

答えて

-1

私は解決策を見つけました。どうやら、ライブラリ/ jarファイルのリストでjarファイルを動かすだけでした。私はプロジェクトのプロパティのライブラリタブでそれを行います。具体的には、jarファイルをRESTライブラリの上に移動する必要があります。

0

誰かがこの問題に直面した場合でも、私たちはGlassfish 3.1.1、JerseyとJoda時間の組み合わせで同様の問題を抱えていました。このようなスタックトレース:

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) 

など

は、私はちょうど見つけ回避策は、GlassFishの/モジュールに当社ジョダタイムジャーのコピーをダンプました。ない正確にはかなり、しかし...誰かが春使用して、同じ問題時につまずく場合

3

:あなたはジャクソンのいずれか@RequestBody注釈に経由を使用してJavaオブジェクトにJSONをマップしようとしている場合

この問題はアップしますコントローラパラメータ、またはObjectMapper()。readValue(json、Class.class)を使用して手動でデシリアライズします。ローカルマシンではすべて正常に動作しますが、アプリケーションをGlassFishにデシリアライズできない場合は失敗します。

Joga-Time.jarをglassfish/modulesにコピーして再起動すると、問題が解決されます。

この問題についてはJiraで開いバグがあるようです:あなたは、実行時に利用可能な2本の瓶を持っていない https://java.net/jira/browse/GLASSFISH-20808

関連する問題