Пользовательский файл parsefilter.json не найден при запуске StormCrawler из Eclipse

Я хотел сообщить, что я изучал StormCrawler SDK для извлечения ответа HTML. Я знаю, что JSoupParserBolt использует файл parsefilter.json для извлечения ответа в соответствии с конкретной потребностью. Я также знаю, что для этой же цели существует файл по умолчанию. В моем случае я использую Eclipse для выполнения файла pom.xml, чтобы сгенерировать файл.jar для созданного сканера. Затем я запускаю класс CrawlTopology, содержащий основную функцию и функцию запуска, состоящую из всех необходимых носиков и ссылок на болты из SDK, образуя топологию (я использовал maven archtype для загрузки примера сканера).

Проблема в том, что класс CrawlTopology не вызывает модифицированный файл parsefilter.json для обращения к необходимой информации, а всегда использует файл parsefilter.json по умолчанию. Я не могу понять, что является причиной такого рода проблем. Является ли это проблемой зависимости maven или проблемой с проектом по умолчанию.

Может кто-нибудь мне помочь?

1 ответ

Решение

Если ваш код был сгенерирован из архетипа, то файл parsefilter.json должен быть в нужном месте, т.е. src/main/resources/.

При использовании Eclipse обязательно импортируйте проект как проект Maven. Это добавит src/main/resources/ в путь к классам. Eclipse получит зависимости и будет управлять классами и т. Д. Я обычно запускаю топологии в Eclipse без каких-либо проблем.

Это хорошо для тестирования и отладки, но лучший подход - запускать код вне Eclipse, как указано в README. Другой вариант, если вы не установили Storm, это использовать

 mvn clean compile exec:java -Dexec.mainClass=insert.package.CrawlTopology -Dexec.args="-conf crawler-conf.yaml -local"

запустить его в локальном режиме за пределами Eclipse.

Другие вопросы по тегам