2016-06-20 9 views
0

この問題を解決する方法がわかりません。私はAntのbuild.xmlの下に宣言されたすべての必要なジャーを持っていて、アプリケーションのクラスパスに追加されています。Glassfish:アプリケーションのデプロイ中にNoClassDefFoundError

ERROR ContextLoader     - Context initialization failed 
java.lang.NoClassDefFoundError: com/google/api/client/json/JsonFactory 
    at java.lang.Class.getDeclaredConstructors0(Native Method) 
    at java.lang.Class.privateGetDeclaredConstructors(Class.java:2585) 
    at java.lang.Class.getDeclaredConstructors(Class.java:1906) 
    at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor.determineCandidateConstructors(AutowiredAnnotationBeanPostProcessor.java:229) 
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.determineConstructorsFromBeanPostProcessors(AbstractAutowireCapableBeanFactory.java:962) 

Caused by: java.lang.ClassNotFoundException: com.google.api.client.json.JsonFactory 
    at org.glassfish.web.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1761) 

build.xmlに特定のコンパイル時または実行時の設定が見つかりませんでしたか?実行時のjarファイルを${GLASSFISH_HOME}/modules/フォルダに移動することは意味がありますか?

+0

あなたのant buildスクリプトを追加してください。グラスフィッシュのスコープがあるので、アプリの最終版には表示されないことがありますか? – Jezor

+0

私は巨大なantファイルを持っています。ここに貼り付けることはできません。 –

+0

いつでも[pastebin](http://pastebin.com/)のような外部Webサイトを使用できます。 – Jezor

答えて

1

実行時にclassが定義されていない場合、NoClassDefFoundErrorがスローされます。このエラーは、クラスの定義がアプリケーションのコンパイル時に見つかりましたが、ランタイム中にアプリケーションのクラスパスで使用できないことを示しています。

ビルド時とランタイムのクラスパスの違いを調べます。

+0

私は同じ感情を持っていました。どのようにbuild.xmlのどの部分が問題を引き起こしているのかを見つけることができます。私はMaven/Gradleの世界から来て、Antには新しい。 –

+0

このリンクを参照してください:https://ant.apache.org/manual/using.html – Seeker

+0

リンクありがとうございます。私は既存のプロジェクトに新しい機能を追加しています。彼らはすでにすべてのセットアップを持っています。既存のbuild.xmlファイルをどのようにデバッグできますか。 –

関連する問題