Как запустить WAR на Tomcat в eclipse, если это не «динамическое веб-приложение»?

Я просматриваю руководство по jwt (это Java Web Toolkit, а не JSON Web Tokens). В руководстве представлен проект eclipse для загрузки и импорта в eclipse, а также есть инструкции по его развертыванию на причальном сервере.

Я хотел бы развернуть его на сервере tomcat, который я уже установил в качестве сервера в eclipse, чтобы я мог вносить изменения и повторно развертывать без раздражающих шагов по копированию файла WAR во внешнюю установку Tomcat и подключению сеанса удаленной отладки.

Я создал файл войны, и если я разверну его во внешнем сеансе, он будет работать нормально. Но я не могу понять, как сказать eclipse развернуть его на внутреннем сервере. Когда я щелкаю проект правой кнопкой мыши и выбираю «Выполнить» или «Отладка», есть возможность запустить его как приложение, но не запустить на сервере. Я предполагаю, что eclipse предоставляет эту опцию только для «Динамических веб-приложений», но это не помечено таким образом, и это всего лишь предположение.

Как я могу настроить проект так, чтобы eclipse знал, что нужно развернуть свой военный файл на внутреннем сервере?

Также - это не проект Maven, у них есть build.xml для Ant.


Итак, я нашел «Фасеты проекта» и установил фасет проекта для моего приложения «привет» как «Динамический веб-модуль», и теперь есть возможность запустить его на сервере. Но когда я это делаю, я получаю 404 «не нашел представления для текущего ресурса», без сообщений об ошибках в консоли или терминале. Я повторил WAR на внешнем сервере, чтобы убедиться, и это все еще работает.

Какие-либо предложения?


Ссылка на руководство: это раздел 3 https://www.webtoolkit.eu/jwt/latest/doc/userguide/userguide.html

Я понимаю, что Dynamic Web Module, возможно, был неправильным путем, но в наш век программирования методом проб и ошибок казалось разумным попытаться заставить eclipse думать, что это веб-проект для этой цели. Я счастлив (как-нибудь) поддержать это, если это не так.

Их инструкции охватывают развертывание в eclipse для Jetty, которое я не использую. Я бы подумал, что если для tomcat-under-eclipse потребуется index.html или web.xml, он потребуется для Jetty-under-eclipse, но это только предположение.

[1] Обновите свое сообщение ссылкой на учебное пособие. [2] Я понимаю, почему вы пытались добавить фасет Динамический веб-модуль, но это могло отправить вас по нежелательному пути. Ошибка 404 может быть вызвана тем, что у вас нет ни index.html, ни дескриптора развертывания (web.xml со списком-приветствием или отображением сервлета для вашего «веб-проекта»). [3] Выявит ли что-нибудь, глядя на то, как проект успешно настроен на внешнем сервере Tomcat? Я понимаю, что все, что вы сделали, это развернули приложение, но, может быть, Tomcat после этого сделал что-то особенное для вашего JWT-приложения?

skomisa 04.08.2018 01:40
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
1
1
875
1

Ответы 1

Мне удалось запустить jwt-привет на Tomcat в Eclipse после внесения следующих изменений конфигурации:

  • Отметьте Свойства> Фасет проекта> Динамический веб-модуль, установив версию на 2,5 (чтобы проект мог быть добавлен в Tomcat). У меня были проблемы с использованием версий 3.0 и 4.0.
  • Установите Свойства> Компилятор Java> Уровень соответствия компилятора в 1,8.
  • Установите Свойства> Путь сборки Java> Библиотеки> Системная библиотека JRE для использования JDK 1.8.
  • Установите для Свойства> Настройки веб-проекта> Корень контекста значение Привет, поскольку по умолчанию это jwt-привет.
  • Скопируйте jwt-3.3.11.jar из папки расстояние загруженного zip-файла JWt в WEB-INF / lib.
  • Скопируйте slf4j-api-1.6.4.jar, slf4j-простой-1.6.4.jar и общие-fileupload-1.3.3.jar из папки lib загруженного zip-файла JWt в WEB-INF / lib.

После настройки проекта создайте WEB-INF / web.xml с содержимым, показанным ниже, чтобы избежать проблемы 404, а затем build.xml> Запуск от имени> Сборка Ant для сборки проекта.

    <?xml version = "1.0" encoding = "UTF-8"?>
    <web-app xmlns:xsi = "http://www.w3.org/2001/XMLSchema-instance"
        xmlns = "http://java.sun.com/xml/ns/javaee"
        xsi:schemaLocation = "http://java.sun.com/xml/ns/javaee 
        http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
        id = "WebApp_ID" version = "2.5">
        <servlet>
            <servlet-name>GreetingServlet</servlet-name>
            <servlet-class>eu.webtoolkit.jwt.examples.hello.HelloMain</servlet-class>
        </servlet>
        <servlet-mapping>
            <servlet-name>GreetingServlet</servlet-name>
            <url-pattern>/Hello</url-pattern>
        </servlet-mapping>
    </web-app>

На сервере Tomcat Eclipse:

  • Добавьте следующую строку в server.xml, чтобы отразить изменение корневого контекста с jwt-привет на Привет:

    <Context docBase = "jwt-hello" path = "/hello" reloadable = "true" source = "org.eclipse.jst.jee.server:jwt-hello"/>
    
  • Добавьте проект jwt-привет в Tomcat и запустите его. Приложение работает без ошибок и исключений в журнале:

    Localhost web app

Заметки:

  • Я только потом понял, что в jwt-привет есть папка WebRoot с необходимыми файлами lib и образец web.xml для Tomcat. Он отличался от того, что я создал самостоятельно, но я больше не исследовал.
  • Моя среда: Eclipse Photon + JDK 8u152 + Tomcat 9.0.10 + jwt-3.3.11-rc1.zip в Windows 10.
  • Я использовал JDK 8 из-за не связанных проблем с установкой Tomcat 9 для работы с JDK 10.

Другие вопросы по теме