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
)
Это было бы сделано по требованию, возможное несколько раз в день. Путем я видел бы, что это работать как в http://sqlite.1065341.n5.nabble.com/Attempting-to-merge-large-databases-td39548.html , где базы данных объединяются в большой DB, выполненный запрос и затем большая удаленная база данных.
Если только необходимо сделать эту операцию слияния однажды (для создания новой большей базы данных), Вы могли создать сценарий/программу, который циклично выполнит все Ваши sqlite базы данных и затем вставит данные в Вашу основную (большую) базу данных.
Без преступления, так же, как один разработчик другому, я боюсь, что Ваша идея кажется ужасно неэффективной. Мне кажется, что вместо того, чтобы объединить базы данных SQLite необходимо, вероятно, хранить несколько таблиц в том же файле Базы данных.
Однако, если я ошибаюсь, я предполагаю, что Вы могли бы ПРИСОЕДИНИТЬ базы данных и затем использовать ПРЕДСТАВЛЕНИЕ для упрощения запросов. Или сделайте таблицу в оперативной памяти и копию по всем данным (но это - еще худшая мудрая производительность, особенно если у Вас есть большие базы данных)