org.apache.jasper.JasperException: Абсолютный uri: http://java.sun.com/jstl/core не может быть разрешен в файле web.xml или jar развернутый с этим приложением
blockquote>Этот URI для JSTL 1.0, но вы на самом деле используете JSTL 1.2, который использует URI с дополнительным
/jsp
путем (поскольку JSTL, который изобрел EL-выражения, поскольку версия 1.1 интегрирована как часть JSP для совместного использования / повторного использования EL-логики в простом JSP).Итак, исправьте URI taglib соответственно:
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
Дальше POM также определяет реализацию Apache JSTL 1.1 через
taglibs:standard
. Это необязательно и даже опасно, если у вас уже есть JSTL 1.2 API + impl, связанный черезjavax.servlet:jstl
, потому что 1.1 и 1.2, очевидно, конфликтуют друг с другом. Только одна из следующих зависимостей JSTL 1.2 должна сделать это, чтобы JSTL был установлен в вашем веб-приложении, ориентированном на Tomcat (не устанавливайтена
provided
, поскольку Tomcat на самом деле не предоставляет его в поле!):
javax.servlet jstl 1.2 Пользователи, не являющиеся членами Maven, могут добиться того же, отбросив единственный файл jstl-1.2.jar в папке
/WEB-INF/lib
проекта веб-приложения (не отбрасывайте standard.jar или любые свободные .tld-файлы там!).Если вы на самом деле используете обычный Java EE-сервер, такой как WildFly, Payara и т. д. вместо barebones servletcontainer, таких как Tomcat, Jetty и т. д. то вам не нужно явно устанавливать JSTL. Обычные серверы Java EE уже предоставляют JSTL из коробки. Другими словами, вам не нужно добавлять JSTL в
pom.xml
и не удалять файлы JAR / TLD в webapp. Исключительно достаточноprovided
координаты Java EE:
javax javaee-api provided Далее вы также должны убедиться, что ваш
web.xml
объявлен как совместимый не менее Servlet 2.4 и, следовательно, не как Сервл 2.3 или старше. В противном случае EL-выражения внутри тегов JSTL, в свою очередь, не сработают. Выберите самую высокую версию, соответствующую вашему целевому контейнеру, и убедитесь, что у вас нетв любом месте вашего
web.xml
. Вот пример совместимости с сервлетами 4.0 (Tomcat 9):
См. Также:
- Документация по ключевому тегу JSTL для ключевого слова (для правильного taglib URI)
- Информационная страница тега JSTL (для ссылок загрузки JSTL и примеров
web.xml
)
Когда Вы используете Терминал, и необходимо ввести пароль, он не покажет на экране вообще, это - нормальная практика.
Когда терминал просит Ваш пароль просто вводить ясный без Caps Lock на. Обратите внимание, что пароль совпадает с нашим паролем входа в систему Ubuntu.