質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Java EE

Java EE(Java Enterprise Edition)はJavaベースのテクノロジーとその相互運用の仕様をまとめたものです。サーバとクライアントのアーキテクチャを規定し、特定アプリケーションのクラス用に定義されたテクノロジー設定のプロファイルを使用します。

JSP

JSP(Java Server Pages)とは、ウェブアプリケーションの表示レイヤーに使われるサーバーサイドの技術のことです。

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

servlet

Servletとは、Webページの動的な生成やデータ処理などをサーバ上で実行するために、Javaで作成されたプログラムです。 ショッピングサイトやオンラインバンキングといった、動的なウェブサイトの構築に用いられています。

Q&A

解決済

3回答

10047閲覧

JSTLを用いたjspで起こるエラーを解決したい

PineApplePen

総合スコア1

Java EE

Java EE(Java Enterprise Edition)はJavaベースのテクノロジーとその相互運用の仕様をまとめたものです。サーバとクライアントのアーキテクチャを規定し、特定アプリケーションのクラス用に定義されたテクノロジー設定のプロファイルを使用します。

JSP

JSP(Java Server Pages)とは、ウェブアプリケーションの表示レイヤーに使われるサーバーサイドの技術のことです。

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

servlet

Servletとは、Webページの動的な生成やデータ処理などをサーバ上で実行するために、Javaで作成されたプログラムです。 ショッピングサイトやオンラインバンキングといった、動的なウェブサイトの構築に用いられています。

0グッド

0クリップ

投稿2021/07/23 07:49

編集2021/07/27 01:51

前提・実現したいこと

javaのサーブレットとjspでログイン機能を作っています。
jatlを用いて作成したjspを開く際にエラーが発生しました。

発生している問題・エラーメッセージ

jatlを用いて作成したjspを開く際にエラーが発生しました。

エラーメッセージ タイプ 例外報告 メッセージ java.lang.NoClassDefFoundError: javax/servlet/jsp/tagext/TagLibraryValidator 説明 サーバーは予期しない条件に遭遇しました。それはリクエストの実行を妨げます。 例外 jakarta.servlet.ServletException: java.lang.NoClassDefFoundError: javax/servlet/jsp/tagext/TagLibraryValidator org.apache.jasper.servlet.JspServlet.service(JspServlet.java:332) jakarta.servlet.http.HttpServlet.service(HttpServlet.java:770) org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53) servlet.LoginServlet.doGet(LoginServlet.java:36) jakarta.servlet.http.HttpServlet.service(HttpServlet.java:663) jakarta.servlet.http.HttpServlet.service(HttpServlet.java:770) org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53)

該当のソースコード

jsp

1<%@ page language="java" contentType="text/html; charset=UTF-8" 2 pageEncoding="UTF-8"%> 3<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> 4<!DOCTYPE html> 5<html> 6<head> 7<meta charset="UTF-8"> 8<title>ログイン画面</title> 9</head> 10<body> 11<form action="/login/Login" method="post"> 12IDまたはメールアドレス<input type="text" name="idMail"><br> 13パスワード<input type ="password" name="pass"> 14<input type="submit" value="ログイン"> 15</form> 16<a href ="/login/Create">ユーザー登録</a> 17<c:if test="{errorMsg} != null"> 18 {errorMsg} 19</c:if> 20</body> 21</html>

java

1classpathです。 2<?xml version="1.0" encoding="UTF-8"?> 3<classpath> 4 <classpathentry kind="src" path="src/main/java"/> 5 <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-16"> 6 <attributes> 7 <attribute name="module" value="true"/> 8 </attributes> 9 </classpathentry> 10 <classpathentry kind="con" path="org.eclipse.jst.server.core.container/org.eclipse.jst.server.tomcat.runtimeTarget/Tomcat10 (Java16)"> 11 <attributes> 12 <attribute name="owner.project.facets" value="jst.web"/> 13 </attributes> 14 </classpathentry> 15 <classpathentry kind="con" path="org.eclipse.jst.j2ee.internal.web.container"/> 16 <classpathentry kind="con" path="org.eclipse.jst.j2ee.internal.module.container"/> 17 <classpathentry kind="con" path="org.eclipse.jdt.junit.JUNIT_CONTAINER/5"/> 18 <classpathentry kind="output" path="build/classes"/> 19</classpath>

java

1Web-xml 2<?xml version="1.0" encoding="UTF-8"?> 3<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:web="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd" id="WebApp_ID" version="2.5"> 4 <display-name>login</display-name> 5 <welcome-file-list> 6 <welcome-file>index.html</welcome-file> 7 <welcome-file>index.htm</welcome-file> 8 <welcome-file>index.jsp</welcome-file> 9 <welcome-file>default.html</welcome-file> 10 <welcome-file>default.htm</welcome-file> 11 <welcome-file>default.jsp</welcome-file> 12 </welcome-file-list> 13 <servlet> 14 <description></description> 15 <display-name>LoginServlet</display-name> 16 <servlet-name>LoginServlet</servlet-name> 17 <servlet-class>test.LoginServlet</servlet-class> 18 </servlet> 19 <servlet-mapping> 20 <servlet-name>LoginServlet</servlet-name> 21 <url-pattern>/LoginServlet</url-pattern> 22 </servlet-mapping> 23 <servlet> 24 <description></description> 25 <display-name>CreateServlet</display-name> 26 <servlet-name>CreateServlet</servlet-name> 27 <servlet-class>Servlet.CreateServlet</servlet-class> 28 </servlet> 29 <servlet-mapping> 30 <servlet-name>CreateServlet</servlet-name> 31 <url-pattern>/CreateServlet</url-pattern> 32 </servlet-mapping> 33 <servlet> 34 <description></description> 35 <display-name>LogoutServlet</display-name> 36 <servlet-name>LogoutServlet</servlet-name> 37 <servlet-class>servlet.LogoutServlet</servlet-class> 38 </servlet> 39 <servlet-mapping> 40 <servlet-name>LogoutServlet</servlet-name> 41 <url-pattern>/LogoutServlet</url-pattern> 42 </servlet-mapping> 43 <servlet> 44 <description></description> 45 <display-name>ChangeServlet</display-name> 46 <servlet-name>ChangeServlet</servlet-name> 47 <servlet-class>servlet.ChangeServlet</servlet-class> 48 </servlet> 49 <servlet-mapping> 50 <servlet-name>ChangeServlet</servlet-name> 51 <url-pattern>/ChangeServlet</url-pattern> 52 </servlet-mapping> 53 <servlet> 54 <description></description> 55 <display-name>PassChangeServlet</display-name> 56 <servlet-name>PassChangeServlet</servlet-name> 57 <servlet-class>servlet.PassChangeServlet</servlet-class> 58 </servlet> 59 <servlet-mapping> 60 <servlet-name>PassChangeServlet</servlet-name> 61 <url-pattern>/PassChangeServlet</url-pattern> 62 </servlet-mapping> 63 <servlet> 64 <description></description> 65 <display-name>passChangeServlet</display-name> 66 <servlet-name>passChangeServlet</servlet-name> 67 <servlet-class>servlet.passChangeServlet</servlet-class> 68 </servlet> 69 <servlet-mapping> 70 <servlet-name>passChangeServlet</servlet-name> 71 <url-pattern>/passChangeServlet</url-pattern> 72 </servlet-mapping> 73 <servlet> 74 <description></description> 75 <display-name>DeleteServlet</display-name> 76 <servlet-name>DeleteServlet</servlet-name> 77 <servlet-class>servlet.DeleteServlet</servlet-class> 78 </servlet> 79 <servlet-mapping> 80 <servlet-name>DeleteServlet</servlet-name> 81 <url-pattern>/DeleteServlet</url-pattern> 82 </servlet-mapping> 83</web-app>

試したこと

jspのタグライブラリの指定のコードとtaglibディレクティブを削除した際にはエラーが起こりませんでした。
jspで直接リクエストしたときもエラーが発生しました。

補足情報(FW/ツールのバージョンなど)

Tomacat10_Java16
javaEE
WEB-INF/libにjstl-api-1.2.jarとjstl-impl-1.2.jarを配置しています。
イメージ説明

ビルドパスのライブラリ
イメージ説明
イメージ説明
![イメージ説明]
(2292ce1b81e37bfa7136e74e953b26cd.png)
イメージ説明

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

m.ts10806

2021/07/23 09:56

>WEB-INF/libにjstl-api-1.2.jarとjstl-impl-1.2.jarを配置しています。 クラスパスへの追加って必要ないですか?
PineApplePen

2021/07/25 07:59

クラスパスについての詳細を追記しました。 足りない情報がありましたら、教えていただけると助かります。
m.ts10806

2021/07/25 08:30

これはEclipseですかね。 クラスパスの設定画面も追加してもらえますか?
PineApplePen

2021/07/25 16:08

Eclipseです。クラスパスの設定画面はビルドパスのライブラリのことであっていますか? 間違っていたら、開き方を教えていただけると助かります。 初心者なのでまだ用語がわからないことが多く、お手数おかけしてすみません。
m.ts10806

2021/07/25 20:19

eclipseのバージョンにより違うかもしれませんが プロジェクト右クリック→プロパティ→ビルド・パス→ライブラリー です。
PineApplePen

2021/07/26 01:56

ありがとうございます。 追加しました。
K_3578

2021/07/27 00:17

web.xmlにエラー出てるみたいですけどどこに出てるんですか?
PineApplePen

2021/07/27 01:53

コードを追加しました。エラーは二行目と、<display-name>,<description>の記述があるところで発生しています。
guest

回答3

0

ベストアンサー

JavaEEがOracleからEclipse財団に譲渡された際に名前がJakartaEEへと変更されたんですが、
その時にjavaxライブラリの改訂をOracleが認めなかったのでパッケージ名等が
javaxからjakartaに変わりました。Tomcat10からJakartaEEをサポートしているため、

javax/servlet/jsp/tagext/TagLibraryValidatorがNoClassDefoundErrorになってるのかと。

つまり、jstl-api-1.2.jarとjstl-impl-1.2.jarが使えないと言うことですね。

私がTomcat9で止めているのでちょっと詳しくないですが代替はこれかな。

間違ってたら申し訳ない。

投稿2021/07/27 02:28

K_3578

総合スコア1282

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

K_3578

2021/07/27 03:16

MavenもGradleも使ってないのかな?相当不便だと思いますが
K_3578

2021/07/27 12:59

解決したなら良かったです。
trantribao

2021/09/09 05:08

ありがとうございます。私も同じエーラになったが、解決出来ました。参考になりました。
victormccormick

2023/08/07 06:07

使用できるのは、共有フォルダ内に存在する資材だけです。共有フォルダ内の資材を利用して、EclipseとTomcatを問題なく環境構築できました。
guest

0

Thanks for sharing. It's so helpful for me.

投稿2023/09/19 06:07

victormarcel09

総合スコア4

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

コンパイルエラーを確認:

JSPファイルにコンパイルエラーがないことを確認してください。構文エラーや必要なインポートが不足していないか、JSPに存在するか確認してください。
JATLの互換性:

使用しているJATLライブラリがServletコンテナとJavaバージョンと互換性があることを確認してください。ライブラリのバージョンが実行環境と競合することがあります。
ライブラリの設定:

プロジェクトにJATLライブラリを正しく設定し、含めていることを確認してください。クラスパスを確認し、すべて必要なJARファイルが存在することを確認します。

JanMontgomery

投稿2023/09/07 05:37

JanMontgomery

総合スコア5

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問