Куда поместить файл конфигурации ServiceLoader в веб-приложение

Я пишу веб-приложение в Eclipse.

Я пытаюсь использовать класс ServiceLoader для загрузки некоторых плагинов.

В документах для ServiceLoader говорится, что я должен поместить файл в META-INF/services.

Я поместил файл в папку WebContent/META-INF/service, но когда я запускаю тест JUnit через Eclipse, это не находит плагинов.

Действительно ли это - корректное местоположение для файла?

Кроме того, как я могу получить больше информации об отладке от ServiceLoader, такого как папки, в которых это ищет файл?

7
задан ljbade 6 August 2010 в 02:51
поделиться

1 ответ

META-INF/services должен находиться в корне jar-файла или каталога ресурсов в classpath загрузчика классов, используемого для поиска плагинов.

Если у вас веб-приложение, то структура каталогов может быть такой:

<webappname>/WEB-INF/classes/META-INF/services

Но идеальный способ - иметь его в jar-файле вашего плагина. Например, если у вас есть плагин в комплекте как WEB-INF/lib/myplugin.jar, а класс вашего плагина com.example.plugin.MyPlugin Тогда jar должен иметь структуру:

myplugin.jar!/META-INF/services/com.example.plugin.MyPlugin

Сделав это, вы можете получить загрузчик сервисов, используя загрузчик классов вашего веб-приложения

9
ответ дан 7 December 2019 в 03:09
поделиться
Другие вопросы по тегам:

Похожие вопросы: