Pull to refresh

По следам поста «Быстрая разработка веб-приложений на Java»

Reading time 2 min
Views 8.4K
image
Мотивом написания данной статьи послужило прочтение поста «Быстрая разработка веб-приложений на Java» и небольшой когнитивный диссонанс, возникший после прочтения и вопрос, который продолжает попрежднему мучать меня — Зачем такие сложности? Если есть WTP!

Далее я расскажу как я веду разработку под tomcat.

Локальная разработка



Для локальной разработки я использую WTP, это намного удобней постоянных запусков/перезапусков проекта, все обновления подхватываются на лету. И готов поспорить с asolntsev на тему тяжести плагина.

Настраивается все очень просто. В Eclipse File->New->Other...->Server, далее выбираем требуемый сервер и пусь, где локально установлена инстанция сервера (Например tomcat) и жмем Finish. Теперь во View «Servers» появился новый сервер, который можно запускать и на который можно публиковать веб-проекты.

Фактически Eclipse используется установленную инстанцию, но конфиги для работы берет из папки .metadata\.plugins\org.eclipse.wst.server.core\tmp[0]\, при желании их можно править напрямую.

Если проект maven — тоже ничего сложного в этом нет. Ставим plugin m2eclipse, добавляем plugin’s репозитарий m2e-extras и доустанавливаем «Maven Integration for WTP», после чего появляется возможность публиковать mvn веб-проекты в WTP.

Достоинства
  • Не нужно перезапускать проект — изменения подхватываются на лету
  • Избавляемся от ошибок связанных с особенностями контейнера
  • Логи отображаются в консоли в Eclipse

Недостатки
  • Иногда проект клинит и не обновляется — лечится правой кнопкой на сервере «Clean...»


Удаленная разработка



Когда проект по моему мнению готов, я выкладываю его на тестовый сервер запуском task в ant, для этого придется прописать в build-е пути к catalina-ant.jar, jasper-compiler.jar, jasper-runtime.jar, servlet-api.jar, commons-logging.jar. Почитать про настройку деплоя через ant можно например тут .


<taskdef resource="org/apache/catalina/ant/catalina.tasks" classpathref="tomcat.classpath" />
<target name="deploy_test" depends="war" description="Create a war file">
<undeploy url="${tomcat.node1}/manager" username="admin" password="admin" path="/test"  failonerror="no"/>
<undeploy url="${tomcat.node2}/manager" username="admin" password="admin" path="/test"  failonerror="no"/>
<deploy url="${tomcat.node1}/manager" username="admin" password="admin" path="/test" war="${distrib}" />
<deploy url="${tomcat.node2}/manager" username="admin" password="admin" path="/test" war="${distrib}" />
</target>

Все — обновленная версия проекта ушла на сервер (или на несколько серверов).

Достоинства
  • Простота использования
  • Надежность обновления

Недостатки
  • Перед публикацие требуется переcборка war


Заключение



Данные методы не претендуют на универсальность, но я не сталкивался c задачами, когда было бы невозможно использовать данную схему работы. Хотелось бы также услышать ваше мнение по поводу данных способов работ.
Tags:
Hubs:
+17
Comments 38
Comments Comments 38

Articles