2010-11-26 16 views
3

私はGWTに基づいてWebアプリケーションをデプロイしています。私はコンパイルするとき、私はすべてのエラーを得ることはありませんが、実行時に、私はこの1つ(ない完全なスタックトレース)を取得:GWTで実行時に奇妙なClassNotDefFoundExceptionを取得する

によって引き起こさ
java.lang.NoClassDefFoundError: org/xmlpull/v1/XmlPullParserException 
at org.gvsig.remoteClient.sos.SOSClient.<init>(SOSClient.java:47) 
at com.uji.project.server.ConnectServiceImpl.makeConnection(ConnectServiceImpl.java:18) 
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 

Caused by: java.lang.ClassNotFoundException: org.xmlpull.v1.XmlPullParserException 
at java.net.URLClassLoader$1.run(Unknown Source) 
at java.security.AccessController.doPrivileged(Native Method) 

私はこのウェブサイト上で読んだことがありますこれは、実行時に1つ以上のクラスが利用できない場合に発生する可能性がありますが、エラーはXMLパーサの問題によって発生しますが、XMLパーサーはlibフォルダに含まれています。具体的には、プロジェクトのlibフォルダに、gwt-maps.jar,gwt-servlet.jarkxml2.jar *の3つのJARファイルを見つけることができます。

私は「kxml2.jar」ファイルを開くと、私は内内V1フォルダ、最後にXmlPullParserException.classを持っていることをxmlpullフォルダを、持っているフォルダ組織を見ることができます。

lib ... libフォルダに含まれている場合、このクラスを使用できないのはなぜですか? AppEngineのクラスで

+0

実行時にlibフォルダがCLASSPATHに含まれていますか? –

+0

プロジェクト、環境設定、Javaビルドパス、およびライブラリタブを右クリックすると、これらの3つの.jarファイルがそのリストにあることがわかります。しかし、私がWindow、preferences、javaのパスとクラス変数をビルドすると、 "lib folder"がリストにないことがわかります...どちらが意味ですか?ありがとう! – Irene

+1

kxml2.jarの代わりにxmlpull-.jarを追加しようとしましたか? http://www.findjar.com/class/org/xmlpull/v1/XmlPullParserException.html – Javi

答えて

1

最後に、同僚がこのランタイムエラーの解決方法を教えてくれました。 :GWTアプリケーションがデプロイされるとD

、多くのファイルは、すべてのクラス、ライブラリ、および実行時に必要とされている他のファイルが含まれている(から保留中の)小さなファイル構造の下にコピーされます。

なんらかの理由で、特定のライブラリをそのPATHに(コンパイル/デプロイ時に)コピーするように指示していないと、アプリケーションはそのライブラリを実行時に見つけることができず、エラーが発生します。

(私にとっては)ソリューションは、そのフォルダの中に手でそのライブラリのコピーのように簡単だった:私の場合は「kxml2.jar」C」をコピーしました:\ GWT-2.1.0 SOSProject \戦争\ \ WEB-INF \ lib "。私はアプリケーションを再起動し、ちょうど働いた。:D

このパッチ/ソリューションは、他の人がGWTの下でこの厄介な問題を解決するのに役立ちますように!

1

はclassesofこのwhitelistにあるJREにアクセスすることができます。このjarがJREの別のクラスを使用している場合、ランタイムには含まれません。

Hereあなたは "DOM、SAX、およびXSLTなどのXML処理APIは" AppEngineのと互換性があることを読み取ることができます。多分xmlpullparserは互換性がありませんが、わかりません。

0

この ウィンドウ - > Preferences-> Javaのを試してみてはPath->、プロジェクト/ libににジャー 移動を追加OKヒット選択kxml2.jarを構築します。最後に

+0

いいえ、それは私が試したときに動作しませんでした。 – Irene

0

、私がやったことは最初からやり直しになった:同じワークスペースでは、私は別のプロジェクトを持っていたかもしれない、のは、それらの間の干渉を言わせがありました。

GWT SDKをもう一度解凍し、新しいプロジェクトを開始し、元のソースコードを新しいプロジェクトにコピーし、実行時に配備しました。今は奇妙なClassNotDefFoundエラーが発生していません。今私は別のものを手に入れていますが、それは別の問題です!ありがとうございます。