Меня терзают смутные сомнения относительно правильности того, как я пытаюсь натравить идую 4.5.3 на томку 5.5; может, кто — нить ставлкивался с подобными траблами. Короче...
— Добавляю томку в File -> Settings -> IDE -> Application Servers
— Создаю web модуль с одним сервлетом
— Создаю две конфигурации
1. Конфигурация Local Tomcat : изменяю application context, в catalina.bat вписываю строку:
if "%1" == "run" tomcat5 //TS//tomcat5 --JvmOptions=-Xdebug;-Xnoagent;-Djava.compiler=NONE;
-Xrunjdwp:transport=dt_socket,address=storm:1063,suspend=y,server=n
2. Конфигурация Remote Tomcat : вообще кроме порта ничего менять не даёт, оставляю как есть
Теперь проблемы и неоднозначности, коих, увы, немало:
— Файл catalina.bat, существование которого молчаливо предполагается, на самом деле отсутствует и его приходится создавать самому, по косвенным признакам догадываясь о его роли в процессе запуска томки. Вышеупомянутая строка командного файла есть результат длительных экспериментов, после проведения которых напрашивается вывод: батник юзается для поднятия томки и передачи JVM таких параметров, чтобы она цеплялась к создаваемому идеей сокету для проведения сеанса отладки.
— application context это вообще отдельный разговор. При запуске отладки идея утаскивает содержимое фолдера %CATALINA_HOME%\conf "к себе", в %Idea_Install_Folder%\system\%Confuguration_Name%, и создает в сабфолдере Catalina\localhost нужный xml — ник контекста. И всё бы ничего, да только томка- то за контекстными xml — никами к себе лезет... В результате, пока не скопируешь сгенеренный идеей контекстный файл в томкину папку, хоста по очевидным причинам не видно. Предполагаю, что, чтобы томка брала контекстный файл из идеевской папки, ей нужно передать какой — то параметр, но какой именно, я найти не смог.
— проблема с идеевской консолью. При запуске томки в консольном режиме (tomcat5 //TS//tomcat5) единственный способ завершить работу сервера, это брякнуть его по Ctrl+C или Ctrl+Break. И вот они — то в идее и не срабатывают, в результате чего приходится каждый раз после отладки снимать процесс руками. Без комментариев.
— Удаленная отладка не стартует вообще, отрыгивая странным сообщением
Failed to establish connection to the target VM at 'localhost:1131' using socket transport.
Process not started.
Unable to launch target VM : java.net.ConnectException "Connection refused: connect"
Ясно, что нужно передать JVM при старте такой параметр, чтобы она сама создавала сокет для дебага и слушала его все время, но где это делать? Попытка передать любые параметры инициализации транспорта, будь то сокеты или разделяемая память, через тулзу Tomcat Service Configuration приводит к тому, что сервис томки вообще не поднимается...
Такая вот загогулина
Вывод — либо само понятие "интеграция" применено больше для красного словца, ибо основная интеграция лабается ручищами, либо я ламо и ни фига не понял, что тоже весьма вероятно... Прошу помощи экспертов...