0
 $ java -version java version "1.6.0_45" Java(TM) SE Runtime
 Environment (build 1.6.0_45-b06-451-10M4406) Java HotSpot(TM) 64-Bit
 Server VM (build 20.45-b01-451, mixed mode)

Tomcat バージョン: 7.0.40

ここでは、最初のサーブレット/jsp チュートリアルに従っています。

https://stackoverflow.com/tags/servlets/info

そして、私はこのエラーが発生しています:

HTTP ステータス 500 - 絶対 uri: http://java.sun.com/jsp/jstl/functionsは、web.xml またはこのアプリケーションでデプロイされた jar ファイルで解決できません

次の行で始まる .jsp ファイルから来ているようです。

<%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn" %>

<!DOCTYPE html>
<html lang="en">

次のようにサーブレットをコンパイルしました。

~/java_programs/modernServlet$ javac -cp /Library/Tomcat/lib/servlet-api.jar -d classes src/com/example/controller/HelloServlet.java

次に、そのファイルを Tomcat ディレクトリの WEB-INF クラスの下の同じディレクトリ構造にコピーしました。クラスパスに含める必要がある他のjarファイルはありますか?

====

さて、jstl jar をダウンロードして Tomcat の lib ディレクトリにコピーしたところ、あらゆる種類のコンパイル エラーが発生しました。

$ javac -cp "/Library/Tomcat/lib/servlet-api.jar;/Library/Tomcat/lib/jstl-1.2.jar" -d classes src/com/example/controller/HelloServlet.java
src/com/example/controller/HelloServlet.java:7: package javax.servlet does not exist
import javax.servlet.ServletException;
                    ^
src/com/example/controller/HelloServlet.java:8: package javax.servlet.annotation does not exist
import javax.servlet.annotation.WebServlet;
                               ^
src/com/example/controller/HelloServlet.java:9: package javax.servlet.http does not exist
import javax.servlet.http.HttpServlet;
                         ^
src/com/example/controller/HelloServlet.java:10: package javax.servlet.http does not exist
import javax.servlet.http.HttpServletRequest;
                         ^
src/com/example/controller/HelloServlet.java:11: package javax.servlet.http does not exist
import javax.servlet.http.HttpServletResponse;
                         ^
src/com/example/controller/HelloServlet.java:14: cannot find symbol
symbol: class HttpServlet
public class HelloServlet extends HttpServlet {
                                  ^
src/com/example/controller/HelloServlet.java:13: cannot find symbol
symbol: class WebServlet
@WebServlet("/hello")
 ^
src/com/example/controller/HelloServlet.java:17: cannot find symbol
symbol  : class HttpServletRequest
location: class com.example.controller.HelloServlet
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
                         ^
src/com/example/controller/HelloServlet.java:17: cannot find symbol
symbol  : class HttpServletResponse
location: class com.example.controller.HelloServlet
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
                                                     ^
src/com/example/controller/HelloServlet.java:17: cannot find symbol
symbol  : class ServletException
location: class com.example.controller.HelloServlet
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
                                                                                          ^
src/com/example/controller/HelloServlet.java:23: cannot find symbol
symbol  : class HttpServletRequest
location: class com.example.controller.HelloServlet
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
                          ^
src/com/example/controller/HelloServlet.java:23: cannot find symbol
symbol  : class HttpServletResponse
location: class com.example.controller.HelloServlet
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
                                                      ^
src/com/example/controller/HelloServlet.java:23: cannot find symbol
symbol  : class ServletException
location: class com.example.controller.HelloServlet
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
                                                                                           ^
src/com/example/controller/HelloServlet.java:16: method does not override or implement a method from a supertype
    @Override
    ^
src/com/example/controller/HelloServlet.java:22: method does not override or implement a method from a supertype
    @Override
    ^
15 errors
4

2 に答える 2