almalinux 9 tomcat 10 openlogic java 11 ошибка HTTP Статус 404 – Не найдено

Вопрос или проблема

Я хотел бы разобраться с проблемой, которая, как я думаю, возникает только в моей недавно созданной среде. У меня установлена almalinux 9 с apache tomcat 10 и openlogic jdk версии 11. Установка, похоже, прошла успешно (всё с использованием tar.gz), и я вижу на ip:9080 приветствие tomcat и могу получить доступ к графическому интерфейсу менеджера. И я вижу, что всё принадлежит существующему пользователю tomcat.

 ps aux показывает

tomcat     16179  0.3  7.6 9282676 1897144 ?     Sl   Nov26   3:47 /opt/java11/bin/java -Djava.util.logging.config.file=/opt/tomcat10j11/conf/logging.properties -Djava.util.logging.man

netstat -polent показывает
tcp6       0      0 :::9080                 :::*                    LISTEN      1000       152959     16179/java           off (0.00/0/0)

Я скопировал несколько war файлов в папку /opt/tomcat10j11/webapps/, и логи из catalina.out говорят мне, что для каждого war файла я получил

SEVERE [Catalina-utility-1] org.apache.catalina.startup.HostConfig.deployWAR Ошибка при развертывании архива веб-приложения [/opt/apache-tomcat-10.1.33/webapps/name_of.war]
java.lang.IllegalStateException: Ошибка при запуске дочернего процесса
Вызвано: org.apache.catalina.LifecycleException: Невозможно инициализировать компонент [org.apache.catalina.webresources.WarResourceSet@533c9e9a] в org.apache.catalina.util.LifecycleBase.handleSubClassException(LifecycleBase.java:406)
Вызвано: java.lang.IllegalArgumentException: java.io.FileNotFoundException: /opt/apache-tomcat-10.1.33/webapps/name_of.war (Доступ запрещен) в org.apache.catalina.webresources.AbstractSingleArchiveResourceSet.initInternal(AbstractSingleArchiveResourceSet.java:141)

Поэтому я предполагаю, что ошибка доступа означает, что папка и файл должны принадлежать tomcat. В этот момент я запускаю chown -R tomcat:tomcat /opt/apache-tomcat-10.1.33/, после этого я пытаюсь перезапустить сервер, но продолжаю получать ошибку 404. Где мне стоит искать и как я могу устранить неполадки развертывания tomcat/war?

Проблема связана с версией tomcat – java, используемой в системе. Чтобы иметь возможность работать с war в этой среде, я должен использовать openlogic jdk версии 11 И tomcat 9.

Ответ или решение

Ошибка HTTP Status 404 – Не найдено при развертывании WAR в Apache Tomcat 10 на AlmaLinux 9 с OpenLogic Java 11

Введение

Ошибки, возникающие при работе с веб-приложениями на Java, могут быть очень разными по своей природе, и одна из самых распространённых — это ошибка 404, означающая, что запрашиваемый ресурс не найден. В вашем случае, несмотря на успешное развертывание Apache Tomcat 10 и использование OpenLogic JDK 11, вы сталкиваетесь с проблемами при работе с загруженными файлами WAR. Давайте подробно разберём возможные причины и пути их устранения.

Причины проблемы

Согласно предоставленной информации, вы наблюдаете следующие ключевые ошибки:

  1. Ошибка доступа: В журнале catalina.out отображается java.io.FileNotFoundException: /opt/apache-tomcat-10.1.33/webapps/name_of.war (Permission denied). Это свидетельствует о том, что Tomcat не имеет достаточных прав доступа для работы с файлом WAR, даже после того, как вы изменили владельца папки на пользователя tomcat.

  2. Ошибка развертывания: После изменения прав и попытки перезапуска Tomcat, вы получаете 404 ошибку. Это говорит о том, что Spring Boot или другие настройки приложений не распознают путь к вашему приложению.

Шаги по устранению неполадок

Чтобы решить эту проблему, вы можете выполнить следующие шаги:

  1. Проверка прав доступа: Убедитесь, что все файлы и папки в каталоге /opt/apache-tomcat-10.1.33/ принадлежат пользователю tomcat и имеют достаточные права для чтения и исполнения. Выполните следующие команды:

    chown -R tomcat:tomcat /opt/apache-tomcat-10.1.33/
    chmod -R 755 /opt/apache-tomcat-10.1.33/
  2. Проверка сетевого доступа: Убедитесь, что ваш сервер доступен на указанном порту (9080). Попробуйте выполнить команду:

    curl http://localhost:9080/

    Если вы получите доступ к приветственной странице Tomcat, это значит, что сервер работает корректно.

  3. Логи Tomcat: Внимательно просмотрите все логи Tomcat, особенно catalina.out и localhost/yyyy-MM-dd.log, для получения дополнительной информации о том, почему происходит ошибка 404. Следите за строками, начинающимися с SEVERE или ERROR, так как они могут содержать критически важную информацию.

  4. Контекст и путь к WAR: Убедитесь, что вы правильно копируете WAR файл в папку webapps. Имя файла должно соответствовать тому, что ожидает Tomcat. Например, если файл называется name_of.war, ваше приложение будет доступно по адресу http://ip:9080/name_of, если в web.xml указаны настройки по умолчанию.

  5. Использование Tomcat 9: Ваша последняя установка Tomcat 10 с OpenLogic JDK 11 может быть несовместима с некоторыми WAR-файлами. Попробуйте использовать Tomcat 9 вместе с OpenLogic JDK 11, как вы упомянули. Возможно, это решит проблемы совместимости.

Заключение

Ошибка 404 – это достаточно распространённая проблема, и она может быть вызвана рядом факторов, включая неправильные права доступа или проблемы с совместимостью между версиями. Следуя предложенным шагам, вы сможете устранить причину возникновения ошибки. Запомните, что записи в логах могут служить хорошим источником информации для выявления источника проблем. Нужна дополнительная помощь? Не стесняйтесь задавать вопросы, и мы с радостью вам поможем.

Оцените материал
Добавить комментарий

Капча загружается...