- ベストアンサー
servletのコンパイルエラーについて
- Apache Tomcat 5.5.12にてサンプルプログラムHelloWorld .javaをコンパイルするとエラーが出てしまいます。CLASSPATHなどの設定も一通りサイトを参照して設定してみましたが、解決には至りませんでした。
- 質問者はJAVA初心者で、問題を解決するために調査を行ったが失敗した。
- 質問者は、HelloWorldServlet.javaをコンパイルする際に「;」のエラーが出てしまい、解決方法がわからないと相談している。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
- ベストアンサー
こんばんわ >Apache Software Foundation\Tomcat 5.5\common\libの配下には >servlet.jarは無くservlet-api.jarならあります、 Tomcat5からはservlet-api.jarになったのは知っていますが APIのパッケージまで変わったという記憶はありません。 servlet-api.jarをzip解凍して、本当にjavax\servlet-api\という フォルダが含まれているか一度確認したほうがいいのではないでしょうか。 ちなみに当方のTomcat5.5.17にはcommon\lib\servlet-api.jarはありますが その中にjavax.servlet-apiというパッケージは含まれておりません。 ソースも以下で動くと思います。 import java.io.*; import javax.servlet.*; import javax.servlet.http.*; public class HelloWorldServlet extends HttpServlet { public void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // ContentTypeを設定 response.setContentType("text/html; charset=Shift_JIS"); // 出力用PrintWriterを取得 PrintWriter out = response.getWriter(); // 出力 out.println("<html>"); out.println("<head>"); out.println("<title>Hello World Servlet</title>"); out.println("</head>"); out.println("<body>"); out.println("Hello World"); out.println("</body>"); out.println("</html>"); } }
その他の回答 (2)
import javax.servlet-api.*; じゃなくて import javax.servlet.*; なのでは?
補足
Apache Software Foundation\Tomcat 5.5\common\libの配下には servlet.jarは無くservlet-api.jarならあります、 サイトも参照しましたがこちらが正しいようです。 ソースを載せます。 ---------------ここから----------------- import java.io.*; import javax.servlet-api.*; import javax.servlet.http.*; public class HelloWorldServlet extends HttpServlet { public void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // ContentTypeを設定 response.setContentType("text/html; charset=Shift_JIS"); // 出力用PrintWriterを取得 PrintWriter out = response.getWriter(); // 出力 out.println("<html>"); out.println("<head>"); out.println("<title>Hello World Servlet</title>"); out.println("</head>"); out.println("<body>"); out.println("Hello World"); out.println("</body>"); out.println("</html>"); } } ---------------ここまで-----------------
- めとろいと(@naktak)
- ベストアンサー率36% (785/2139)
クラスパスの話じゃなくて、プログラム内で「;」がなかったり、 その直近で何かおかしな記述してたりしてません?
補足
ハットの位置がずれてました。 HelloWorldServlet.java HelloWorldServlet.java:2: ';' がありません。 import javax.servlet-api.*; ^ import javax.servlet-api.*; の部分を指摘されてると思うのですがセミコロンは記述してます。
お礼
すいません、"-api"を削除してコンパイルしたところ 成功しました、しかし最初は、"-api"を省いてコンパイルした ところエラーが出てできなかったのでimport javax.servlet-api.*; を追加してしまいました。 以前とクラスパスも変えてないのに出来たのは不思議です・・・ 二度にわたる解答どうもありがとうございました、 これから頑張ってJAVAを習得したいと思います。