2016-08-02 2 views
0

У меня есть приложение для простого приложения, которое развертывается на сервере IBM MobileFirst 7.1 Liberty Server. (Я не знаю, как работает JAX-RS, но он включен во время работы сервера libty).JAX-RS - Загрузка классов @Provider из файла jar

Мне нужно поделиться некоторыми из моих общих кодов с другими командами, поэтому я переместил часть кода в отдельный проект maven, который должен быть обработан и добавлен в качестве серверной библиотеки. Все это отлично работает, пока мне не пришлось добавлять некоторые аннотированные классы @Provider в отдельный проект maven. В частности, некоторые реализации ExceptionMapper отмечены аннотацией @Provider.

Я попытался установить класс непосредственно в классах приложений getClasses(). Это, похоже, сработало, но я получаю предупреждающее сообщение о том, что мои реализации mapper исключений должны быть отмечены аннотациями @Provider или @Path (какие они есть).

Есть ли какой-то трюк, чтобы заставить JAX-RS распознавать эти классы ресурсов из файла Jar?

+0

Всегда указывайте свою версию IBM MobileFirst ... –

+0

@IdanAdar Мы запускаем MFP 7.1 –

ответ

1

Чтобы распознать @Provider, попробуйте поместить JAR в папку adapter/lib вместо папки server/lib.

+0

Есть ли все-таки сделать это в каталоге server/lib? Прямо сейчас у меня есть 10+ копий одного и того же самого баннера в каждом адаптере, потому что они все используют его. Я также имею его в каталоге server/lib, потому что у меня есть пользовательские аутентификаторы, которые также используют некоторые классы из него. Мне сложно работать –

+0

Прошу прощения, но нет. Адаптер находится в песочнице, поэтому вы можете развернуть его и легко развернуть. Проверка классов для аннотации выполняется только внутри загрузчика класса адаптера. Сервер/lib является загрузчиком родительского класса адаптера, и его там не найти. –

+0

Это имеет смысл, спасибо за дальнейшее объяснение. –

Смежные вопросы