Сервис Tomcat: цитаты в wrapper.conf - PullRequest
3 голосов
/ 05 марта 2009

Я хотел настроить удаленную отладку из Eclipse. Tomcat работает как служба на Windows.

Этот бит в порядке, быстрый гугл указал мне на правильные настройки, чтобы добавить в wrapper.conf, чтобы включить это. Уже были записи в файле wrapper.conf, поэтому я скопировал / вставил последнюю запись и изменил ее:

wrapper.java.additional.8="-Djava.endorsed.dirs=C:/Program Files/OurApp/tomcat/common/endorsed"
wrapper.java.additional.8.stripquotes=TRUE
wrapper.java.additional.9="-Xdebug -Xrunjdwp:transport=dt_socket,server=y,address=9135,suspend=n"
wrapper.java.additional.9.stripquotes=TRUE

Это не сработало, потому что кавычки вокруг всего, а кавычки применимы только к системам Linux.

Теоретически правильные записи должны быть:

wrapper.java.additional.8=-Djava.endorsed.dirs="C:/Program Files/OurApp/tomcat/common/endorsed"
wrapper.java.additional.8.stripquotes=TRUE
wrapper.java.additional.9=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,address=9135,suspend=n

Второй пример не нуждается в кавычках - без пробелов, чтобы разбить его. Первый пример делает - из-за «Program Files» Я прав в этой оценке?

Если так, как / почему приложение работает как есть? Есть несколько параметров, которые якобы устанавливаются подобным образом (вложенные в квоты), которые, на мой взгляд, на самом деле не действуют.
Например, минимальные / максимальные настройки памяти.

Я нашел пример здесь , который имеет то же самое, якобы являющийся конфигом для windows и linux.

Мои вопросы: Остановят ли эти кавычки выполнение команд конфигурации?
Почему приложение работает, если это так?

Ответы [ 3 ]

3 голосов
/ 06 марта 2009

После того, как я немного поигрался с троллингом в журналах отладки, я думаю, что изолировал проблему. Проблема была смесью 1 - Быть ленивым и размещать два элемента конфигурации в одной строке. (В свою защиту я скопировал его одной строкой из FAQ по Tomcat 2 - Использование кавычек

Комбинация этих двух была причиной проблемы.

wrapper.java.additional.9="-Xdebug -Xrunjdwp:transport=dt_socket,server=y,address=9135,suspend=n"
wrapper.java.additional.9.stripquotes=TRUE

Таким образом, он генерирует командную строку:

java "-Xdebug -Xrunjdwp:transport=dt_socket,server=y,address=9135,suspend=n" ...

Он обрабатывает всю строку как один аргумент, а не два, как я планировал.

без кавычек wrapper.java.additional.9 = -Xdebug -Xrunjdwp: transport = dt_socket, server = y, address = 9135, suspend = n wrapper.java.additional.9.stripquotes = TRUE, Генерирует:

java -Xdebug -Xrunjdwp:transport=dt_socket,server=y,address=9135,suspend=n ...

Поскольку нет кавычек, чтобы все испортить, он обрабатывает два параметра -X так, как я бы этого хотел. Еще лучше (и, вероятно, предполагаемое использование) как две отдельные записи

    wrapper.java.additional.9="-Xdebug" 
    wrapper.java.additional.9.stripquotes=TRUE
    wrapper.java.additional.10="-Xrunjdwp:transport=dt_socket,server=y,address=9135,suspend=n"
    wrapper.java.additional.10.stripquotes=TRUE

java "-Xdebug" "-Xrunjdwp:transport=dt_socket,server=y,address=9135,suspend=n" ...

Вокруг каждой цитаты, и она рассматривает их индивидуально. С существующими записями все в порядке, потому что они устанавливают только один элемент на строку.

Так что я просто отнесу это к опыту обучения (вздох) и пойму, что теперь я знаю намного больше о wrapper.conf, чего раньше не знал.

Ура, evnafets

1 голос
/ 05 марта 2009

Я использую удаленную отладку в Eclipse через файлы * .bat. Возможно, это будет более простой способ для вас.

Шаги для выполнения:

  1. Загрузите инсталляцию tomcat в zip-файл и скопируйте все файлы в папку bin
  2. Создать файл debug.bat с таким содержимым, как

    установить JPDA_ADDRESS = 8000

    установить JPDA_TRANSPORT = dt_socket

    вызов catalina.bat jpda start

Если вы получите сообщение об ошибке, что порт уже используется, замените 8000 на любой другой (8001, 8002 и т. Д.).

Со стороны Затмения:

  1. Открыть диалог отладки
  2. Новое удаленное Java-приложение (вкладка «Подключить»: Host - localhost или любой другой IP-адрес, порт - 8000; Вкладка «Источник»: добавление всех исходных файлов (например, удалить все, добавить проект Java, выбрать все проекты)
  3. Push Debug
  4. Установите точки останова в Eclipse и попытайтесь достичь их с Tomcat
0 голосов
/ 07 марта 2009

Если вы все еще ищете другое решение, я бы попробовал tomcat6w.exe, диалоговое приложение для настройки службы Windows (доступно в каталоге tomcats bin). Я считаю, что есть несколько опций для установки параметров JVM, как вы сказали. Эти параметры перейдут в реестр, настроив службу.

...