Статьи

Как отладить Solr с Eclipse

Недавно я был озадачен поведением Солра. Я почесал голову и позвал коллегу. Мы не могли понять, что происходит. Ну, Solr с открытым исходным кодом, так что … следующая остановка — Debuggersville!

Запускать Solr в отладчике Eclipse несложно, но есть много разрозненных постов групп пользователей и статей в блогах, которые вам нужно будет вручную связать воедино. Итак, позвольте мне сделать вам одолжение связать всю эту информацию для вас здесь.

Первым шагом, конечно,  является получение исходного кода  для версии Solr, которую вы хотите отлаживать. Распакуйте это куда-нибудь и перейдите в верхний каталог. Давайте освоимся со структурой каталогов. Самое главное, я хочу указать на эти три части:

  • build.xml — файл Solr / Lucene ant build.xml верхнего уровня
  • lucene / — каталог, содержащий исходные данные Lucene
  • solr / — каталог, содержащий источник Solr

Здесь важно отметить, что Solr и Lucene развернуты вместе. Это имеет много удобств, но немного сбивает с толку. Мы думаем, что только что загрузили Solr, но на самом деле мы собрали Solr и Lucene вместе. Чтобы не усложнять ситуацию, я собираюсь назвать весь shebang, который мы только что загрузили,   исходным деревом Solr / Lucene, и я назову  solr/подкаталог исходным деревом Solr.

векторы весело

My Solr / Lucene Source Tree

ОК, бред, давайте начнем. Перейдите к дереву исходного кода Solr / Lucene верхнего уровня в командной строке и давайте загрузим проект Solr / Lucene Eclipse.

~/workspace/solr-4.2.1$ ant eclipse

После этого загрузите Eclipse и выберите  File ->  Import. Выберите Existing Eclipse Project в диалоговом окне и перейдите к вершине дерева исходных текстов Solr / Lucene. После выбора этого каталога нажмите «Готово». Теперь у вас есть проект Eclipse с Solr и Lucene.

векторы весело

Импорт Solr / Lucene Into Eclipse

Теперь вернемся к командной строке, перейдем в исходное дерево Solr и создадим  example/ каталог, в котором находится веб-приложение Solr / Jetty. Этот же  example/ каталог распространяется с бинарниками Solr.

~/workspace/solr-4.2.1$ cd solr/~/workspace/solr-4.2.1/solr$ ant example

После того, как пример приложения будет создан, мы можем  cd перейти в каталог примеров и использовать  start.jar его так же, как и в бинарном дистрибутиве Solr. Мы по-прежнему можем включать обычные аргументы solr для таких элементов, как изменение solr.home и т. Д. Единственное отличие здесь заключается в том, что мы собираемся добавить аргументы Java, необходимые для отладки.

~/workspace/solr-4.2.1/solr$ cd example
~/workspace/solr-4.2.1/solr/example$ java -jar -Xdebug \
     -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=1044 \
     start.jar  

Поскольку мы установили  suspend=y, Java ждет, пока мы подключим отладчик, прежде чем начинать выполнение. Вернитесь к Затмению. Щелкните правой кнопкой мыши ваш проект Solr / Lucene Java и выберите,  Debug As а затем  Debug Configurations. Под Remote Java Application категорией. Нажмите,  New чтобы создать новую конфигурацию отладки. Введите в порт, который мы только что указали Java, в командной строке — 1044. Нажмите  Apply и  Debug. В командной строке вы увидите запуск Solr.

векторы весело

Конфигурация отладки для подключения к примеру веб-приложения

Ура! Вы сделали это! Теперь вы должны иметь возможность устанавливать точки останова по всей базе кода Solr / Lucene, проходить через код и делать все остальное, что вы можете делать с любым другим фрагментом исходного кода. В будущем вы можете просто вызвать эту конфигурацию отладки в меню «Отладка как», и Eclipse попытается подключиться к любому экземпляру Solr, запущенному с помощью команд отладки Java. Получайте удовольствие от взлома на Solr!