Как я могу объединить много баз данных SQLite?

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):




    


См. Также:

64
задан DavidM 17 September 2008 в 07:28
поделиться

3 ответа

Это было бы сделано по требованию, возможное несколько раз в день. Путем я видел бы, что это работать как в http://sqlite.1065341.n5.nabble.com/Attempting-to-merge-large-databases-td39548.html , где базы данных объединяются в большой DB, выполненный запрос и затем большая удаленная база данных.

18
ответ дан yurez 7 November 2019 в 12:18
поделиться

Если только необходимо сделать эту операцию слияния однажды (для создания новой большей базы данных), Вы могли создать сценарий/программу, который циклично выполнит все Ваши sqlite базы данных и затем вставит данные в Вашу основную (большую) базу данных.

1
ответ дан Espo 7 November 2019 в 12:18
поделиться

Без преступления, так же, как один разработчик другому, я боюсь, что Ваша идея кажется ужасно неэффективной. Мне кажется, что вместо того, чтобы объединить базы данных SQLite необходимо, вероятно, хранить несколько таблиц в том же файле Базы данных.

Однако, если я ошибаюсь, я предполагаю, что Вы могли бы ПРИСОЕДИНИТЬ базы данных и затем использовать ПРЕДСТАВЛЕНИЕ для упрощения запросов. Или сделайте таблицу в оперативной памяти и копию по всем данным (но это - еще худшая мудрая производительность, особенно если у Вас есть большие базы данных)

-7
ответ дан Robert Gould 7 November 2019 в 12:18
поделиться
Другие вопросы по тегам:

Похожие вопросы: