Пробуем подружить Intellij Idea Community Edition с Java Servlet

Привет! Готов поспорить, что нижнее лого вам отлично знакомо. :)

30563

Конечно, Intellij IDEA штука чрезвычайно мощная, особенно в Ultimate редакции, но зачастую не у всех есть деньги на лицензию, или даже если есть, то её условия могут не позволять использовать её в коммерческой разработке (например, у меня она студенческая).

В моём случае всё было довольно просто — писать на Java EE я не собирался, весь наш большой проект написан на Java SE. Писал себе преспокойно свою же компоненту в своей IDE и не парился. Но когда уже это было в пути к заказчику, другой отдел захотел попробовать её использовать, но желательно с REST а также блекджеком и шлюхами и в качестве Web Service. Очевидно, что здесь уже нужно задействовать Tomcat или Jetty для веб-контейнера. Было решено использовать Tomcat.

Немаловажен и тот факт, что у меня уже был написан не самый маленький standalone проект, и изменения в его структуре должны были быть минимальными. Об этом тоже напишу ниже.

Особых требований к окружению я не выдвигал, нужно было всего-то собирать в IDEA war-файлик из проекта с одним сервлетом, принимающим post-запрос, и возможность дебажить запущенное поделие.

Сперва нужно добавить библиотечку servlet-api (я использую для сборки Gradle) и плагин “war”.

в build.gradle:

поможем плагину найти путь к web.xml

Кул. Подружили IDE с сервлетами и war-ником. Теперь к структуре проекта.

Capture

Здесь всё тоже выглядит проще пареной репы. Зелёным выделены новые директории и файлы. При сборке war-файла в каталог classes будет упаковано содержимое каталога java. Сервлет, к которому мы будем обращаться, тоже находится в одном из пакетов внутри этого каталога.

Чтобы Tomcat его не потерял, добавим пару строк в web.xml:

В результате очевидно, что наш сервлетик будет доступен по адресу типа

Класс. Теперь у нас всё собирается и можно программировать. А что до дебага? Тут несложно :)

Идем в Run/Debug Configurations, добавляем новую, выбираем remote. Сохраняем. После этого смотрим поля справа (не влез debugger mode: attach)

Untitled

 

Идем в каталог, где у нас развернут tomcat, там открываем /bin/setenv.bat (ну или setenv.sh, зависит от системы).

Добавим

Всё. После этого можно сделать вызов startup.bat и tomcat начнёт запускаться. Он будет ожидать запуска вашего Remote Debug и после этого начнёт деплоить. Соответственно можно запускать отладку. Конечно, надолго такого расклада вряд ли хватит, но как я уже говорил, мера хоть и вынужденная, но действенная.

Как говорится, enjoy, и no pain — no gain. 😉