2013年10月19日土曜日

パッケージ javax.servlet.http は存在しません。

Tomcatさんのメモリ領域管理を見ようと、
下記サイト見ながら試しにJavaのテストプログラム作ってたら、
早速コンパイルからつまづいた。

RT
「いまさら聞けないTomcat〜JSPサーバ構築のキソ
6回:TomcatにWebアプリケーションを配備する」
http://thinkit.co.jp/cert/article/0708/2/6/2.htm

  import java.io.IOException;
  import java.io.PrintWriter;

  import javax.servlet.ServletException;
  import javax.servlet.http.HttpServlet;
  import javax.servlet.http.HttpServletRequest;
  import javax.servlet.http.HttpServletResponse;

  public class HelloWorld extends HttpServlet{

     public void service(HttpServletRequest request,
              HttpServletResponse response)
                  throws ServletException, IOException {

          response.setContentType("text/html");
          PrintWriter out = response.getWriter();

          out.println("<html>");
          out.println("<head>");
          out.println("<title>Hello World</title>");
          out.println("</head>");
          out.println("<body>");
          out.println("<h1>Hello World</h1>");
          out.println("</body>");
          out.println("</html>");

          out.close();
      }
  }

そしたらエラー。
「パッケージ javax.servlet.http は存在しません。」



こんな具合にQ&Aにも上がっているが、どうも解決せず。

「パッケージ javax.servlet.http は存在しません。」
http://okwave.jp/qa/q5770325.html

環境変数の問題らしいけど、下記サイトの通りに設定してあるし…

「基礎から学ぶサーブレット/JSP(11):
JSPとサーブレットの違いを明らかにする (1/2)」
http://www.atmarkit.co.jp/ait/articles/0403/18/news102.html

ええと、答え。

  javac -classpath "%CATALINA_HOME%¥lib¥servlet-api.jar" HelloWorld.java

ポイントは「ダブルクォーテーション」で囲むこと。

原因はこれ。


一見、普通のユーザ変数「CATALINA_HOME」なのですが、
変数値に半角空白が混じってるんですよ。

なので、半角の場所で途切れてしまっていたのが真相。

分かれば簡単。
解決方法見つけるよりブログ書く方が時間掛かっているので、
今後はアウトプットの省力化に邁進しますよ!

ではでは。

0 件のコメント:

コメントを投稿