こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

servletのコンパイルエラーについて

Apache Tomcat 5.5.12にてサンプルプログラムHelloWorld .javaをコンパイルするとエラーが出てしまいます。

HelloWorldServlet.java
HelloWorldServlet.java:2: ';' がありません。
import javax.servlet-api.*;
^

CLASSPATHなどの設定も一通りサイトを参照して設定してみました。

CLASSPATH
.;C:\Program Files\Java\jdk1.5.0_07\lib\tools.jar;C:\Program Files\Apache Software Foundation\Tomcat 5.5\common\lib\servlet-api.jar

CATALINA_HOME
C:\Program Files\Apache Software Foundation\Tomcat 5.5

PATH
C:\Program Files\Java\jdk1.5.0_07\bin

JAVA_HOME
C:\Program Files\Java\jdk1.5.0_07

JAVA初心者なので調べてみましたが解決にはいたりませんでした。
よろしかったらご教授のほどよろしくお願い致します。

投稿日時 - 2006-08-08 01:04:41

QNo.2326251

すぐに回答ほしいです

質問者が選んだベストアンサー

こんばんわ
>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>");
}
}

投稿日時 - 2006-08-08 20:47:51

お礼

すいません、"-api"を削除してコンパイルしたところ
成功しました、しかし最初は、"-api"を省いてコンパイルした
ところエラーが出てできなかったのでimport javax.servlet-api.*;
を追加してしまいました。

以前とクラスパスも変えてないのに出来たのは不思議です・・・

二度にわたる解答どうもありがとうございました、
これから頑張ってJAVAを習得したいと思います。

投稿日時 - 2006-08-08 21:26:28

このQ&Aは役に立ちましたか?

2人が「このQ&Aが役に立った」と投票しています

回答(3)

import javax.servlet-api.*;
じゃなくて
import javax.servlet.*;
なのでは?

投稿日時 - 2006-08-08 07:36:21

補足

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>");
}
}
---------------ここまで-----------------

投稿日時 - 2006-08-08 20:20:31

ANo.1

クラスパスの話じゃなくて、プログラム内で「;」がなかったり、
その直近で何かおかしな記述してたりしてません?

投稿日時 - 2006-08-08 01:10:08

補足

ハットの位置がずれてました。

HelloWorldServlet.java
HelloWorldServlet.java:2: ';' がありません。
import javax.servlet-api.*;
          ^

import javax.servlet-api.*;
の部分を指摘されてると思うのですがセミコロンは記述してます。

投稿日時 - 2006-08-08 01:45:17

あなたにオススメの質問