Eclipse IDEを使用しています。サーブレットを作成しています。サーブレットはhtmlファイルから値を受け取り、それに応じてJSON応答を返す必要があります。
私のdoPost()は:
protected void doPost(HttpServletRequest req, HttpServletResponse res) throws ServletException, IOException {
try
{
res.setContentType("application/json");
res.setHeader("Cache-Control", "nocache");
res.setCharacterEncoding("utf-8");
PrintWriter out = res.getWriter();
JSONObject json = new JSONObject();
String un=req.getParameter("uname");
String pw=req.getParameter("password");
if(un.equals("xxx") && pw.equals("xxx"))
json.put("result", "success");
else
json.put("result", "fail");
out.print(json.toString());
}
catch(Exception e){System.out.print( e.getMessage());}
}
このサーブレットをEclipseで実行すると、ファイルのダウンロードダイアログが表示されます。
Tomcatを使用してEclipseの外部で実行すると、エラーが発生します。
root cause
Java.lang.NoClassDefFoundError: org/json/JSONObject
Server1.doPost(Server1.Java:25)
javax.servlet.http.HttpServlet.service(HttpServlet.Java:647)
javax.servlet.http.HttpServlet.service(HttpServlet.Java:728)
root cause
Java.lang.ClassNotFoundException: org.json.JSONObject
org.Apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.Java:1713)
org.Apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.Java:1558)
Server1.doPost(Server1.Java:25)
javax.servlet.http.HttpServlet.service(HttpServlet.Java:647)
javax.servlet.http.HttpServlet.service(HttpServlet.Java:728)
Server1.doPost(Server1.Java:25)という行は、
JSONObject json = new JSONObject();
Org.json.jarをビルドパスに追加し、Properties->Configure build path->Deployment Assembly
のデプロイメントパスに追加しました。
いいえ。適切な方法ではありません。手順を参照してください。
For Classpath reference:
Eclipseでプロジェクトを右クリック->ビルドパス->ビルドパスの設定-> Javaビルドパス(左ペイン)->ライブラリ(タブ)->外部JARの追加-> jarの選択OKを選択します。
For Deployment Assembly:
EclipseでWARを右クリック->ビルドパス->ビルドパスの構成->デプロイメントアセンブリ(左ペイン)->追加->外部ファイルシステム->追加-> jarの選択->追加->完了。
これが適切な方法です!環境変数を削除することを忘れないでください。現在は必要ありません。
これを試して。きっと動作します。 Mavenを使用してみると、タスクが簡単になります。
次の依存関係を追加してください http://mvnrepository.com/artifact/org.json/json/20080701
<dependency>
<groupId>org.json</groupId>
<artifactId>json</artifactId>
<version>20080701</version>
</dependency>
例外はそれがすべてそれを言うJava.lang.ClassNotFoundException: org.json.JSONObject
必要なjarファイルを追加していないため、org.json.JSONObject
クラスをclasspath
に。