Как решить проблему с запуском Jakarta EE проекта?
Всем привет.
Недавно начал осваивать java. Столкнулся с проблемой, что при старте проекта выдаётся ошибка "Application Server was not connected before run configuration stop, reason: Unable to ping server at localhost:1099". Проект работает на maven, jdk 20, и используется tomcat, самый свежий.
Хост как сказано на stackoverflow правил, перезагружал комп несколько раз, несколько раз удалял и заново инициализировал проект. Не помогает
С моей точки зрения все что существует в Java с суффиксом EE - это морально старая технология. Сейчас идет эпоха микро-сервисов и SpringBoot. Эта Jakkarta - тухляк какой-то. Ну да ладно. Два вопроса.
Почему ты взял нестабильную версию JDK-20? Логичнее было-бы брать JDK-17.
И по какой доке или по какой книжке ты начал вообще это все настраивать?
Ну вообще надо смотреть матрицу совместимости. Я вот тоже хотел брать Scala 3.x последних версий для компиляции джобов в Spark. Но не взлетело. Не поддерживает Spark таких новых спецификаций. Там максимум до Scala 2.12/2.13 и то это мертвая ветка которая уже не будет развиваться так же как Python 2.xx. Существует как памятник человеческой глупости.
Такой совет старого админа - если у тебя что-то пошло не так - проверяй версии софта которые ты берешь. Видос на который ты ссылаешься был опубликован 5 лет назад. И его автор никак не мог брать JDK-20.
mayton2019, да, я щас посмотрел у новых серих tomcat минимальная версия java 21, спасибо за ответ.
Да, я про servlet-api писал, я как раз Jakarta изучаю чтобы быстренько посмотреть как там на низах работают http request-response, и пойти spring framework учить.
Я не знаю как там в ЕЕ, но когда я изучал Spring, то там была проблема с 10 (кажется) Томкатом. Оно не ругалось, но и не работало. Смена версии на 9 решило проблему. Видимо, они там поменяли API.
Другой пример - Apache Ignite. В доках было сказано что он работает на 8 Java. На 11 у меня работал, а на 17 уже нет.
Если ты делаешь что-то по туториалу - делай по туториалу, т.е. строго буква в букву как указано. Сначала добейся работы, потом постепенно улучшай. Так меньше неопределённости.
По ЕЕ. Мне кажется, должна быть конкретная причина изучать ЕЕ. Например, ты метишь в какую-то компанию где это используется. В остальных случаях лучше плыть по мейнстриму :)
И да, ЕЕ это не "по низам", это просто "ещё один фреймворк" со своими подходами. По низам - ты можешь сделать сервер на классах Java, собрать приложение и поместить его в контейнер (Tomcat). В качестве учебной задачи это не так сложно.
Вопрос: зачем тратить на это время? Конечно, лучше что-то знать чем не знать, только когда ты доберёшься до момента когда это знание потребуется - один хрен забудешь т.к. новая информация валит тоннам каждый день и знания, не закреплённые годами практики вымывает очень быстро. Лучше изучить мейнстрим и приступить к работе. А потом, по мере необходимости двигаться вниз по абстракциям, узнавая подробности реализации той или иной штуки.
Wan-Derer, Да, многие компании используют java ee поэтому его сначала учу, потом спринг учить буду. В резюме если компания так или иначе использует ee стек, лучше иметь строчку что есть проект на этой технологии чем не иметь