6

JSON に解析した単純な XML ファイルがあります。すべて問題なくダンディです。私はスタンドアロンの Java クラスを持っています (つまりpublic static void main (String args[])....

これにはプライベート コンストラクターがあります (ファイル名または実際のデータのいずれかの文字列で呼び出す必要があるため)。したがって、オブジェクトのインスタンスを返す 2 つのメソッドがあります。あなたが言うことができるように、私はJavaを少し知っています。

わかった。main メソッドを実行するコードを Eclipse で実行すると、ファイルがロードされ、必要に応じてデコードされます。JUnit経由で実行する生の文字列でも機能します。

だから私は次の事実を知っています -

  1. 静的文字列の解析は機能し、完全にデコードされます
  2. ファイルを提供すると、正しくロードおよびデコードされます。

今問題:

Spring フレームワークで実行するとすぐに、スタンドアロン コードを介して実行したファイル コンテンツ全体を標準出力に書き込むことができます。

しかし、何かを実行する前に、以下のエラーが発生します-

org.springframework.web.util.NestedServletException: ハンドラーの処理に失敗しました。ネストされた例外は java.lang.NoClassDefFoundError: org/json/simple/parser/ParseException です
org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:920)
org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:809)
org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:571)
org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:501)
javax.servlet.http.HttpServlet.service(HttpServlet.java:621)
javax.servlet.http.HttpServlet.service(HttpServlet.java:722)

スタンドアロン コードは Eclipse で実行され、Spring は Tomcat 7 を使用してそのコードをポイントして実行されます。

ParsException が正しく見つからないのはなぜですか?

呼び出し元の Spring コントローラーのインポートは次のとおりです。

import java.io.FileNotFoundException;
java.io.FileReader をインポートします。
import java.io.IOException;
import java.util.ArrayList;
org.apache.commons.lang.StringUtils をインポートします。
org.json.simple.JSONArray をインポートします。
org.json.simple.JSONObject をインポートします。
org.json.simple.parser.JSONParser をインポートします。

それらはビルド順序を変更する方法ですか?それで修正されますか?

4

9 に答える 9

8

クラスパスに json-simple-.jar を含めなかったようです。同じものを含めると、解決されるはずです。

お役に立てれば !

于 2013-02-02T08:01:39.223 に答える
7
  1. ビルド パスにjson-simple-1.1.1.jarファイルを追加します。Eclipse では、プロジェクトを右クリック -> ビルド パス -> ビルド パスを構成 -> Java ビルド パス -> 外部 jar を追加 -> jar ファイルを選択します。

  2. 展開アセンブリにビルド パス エントリを追加します。同じプロパティ ウィンドウで、[展開アセンブリ] オプションを選択します。次に、「Java ビルド パス」エントリを追加します。これにより、ステップ 1 で作成したビルド パス エントリが表示されます。

于 2015-07-07T20:39:35.190 に答える
0

このjarjson-simple-1.1.1.jarをクラスパスに追加して試してみてください。このjarファイルはhttp://code.google.com/p/json-simple/downloads/detail?name=json-simple-1.1.1.jarからダウンロードできます。

于 2013-02-02T01:24:02.160 に答える
0

最終的に私が使用した解決策は、sourceforge.net json パーサーに変更することでした。いくつかのコードを微調整しましたが、JUnit テストは引き続き機能し、Tomcat は文句を言いませんでした。これは最善の解決策ではないかもしれませんが、うまくいきました。

import net.sf.json.JSONArray;
import net.sf.json.JSONObject;
import net.sf.json.JSONSerializer;
于 2013-02-14T10:36:58.293 に答える