Предположим, что мы имеем ситуацию с .ear
приложения, содержащего несколько .war
и .jar
, где мы контролируем JSON де-/сериализации наших объектов в наших REST конечных точек с помощью пользовательских javax.ws.rs.ext.Provider
упакованного внутри одного конкретного .jar
, развернутого как lib с нашим .ear
.Установка пользовательских JAX-RS/JSON де- сериализацию в Wildfly
Теперь, когда мы собираемся расширить количество развертываний, используя вышеупомянутую пользовательскую де-/сериализацию, мы ищем способ уменьшить размер артефакта, и я придумал в основном три возможности, в которых работают только две работы и одна слишком многословный, чтобы быть реальным решением:
Развертыванием
javax.ws.rs.ext.Provider
-artifact с каждым.ear
отсылая к нему (Минус: множественный.ear
-artifacts, содержащему же.jar
библиотеки).Установите
javax.ws.rs.ext.Provider
-artifact как глобальный Wildfly модуль и добавить зависимость черезjboss-deployment-structure.xml
(недостаток:.ear
-artifact могут быть развернуты, но де-/сериализации не работает, как ожидалось, как Wildfly модуль не является частью пути класса развернутого приложения.ear
иjavax.ws.rs.ext.Provider
не регистрируются автоматически при развертывании).Установите
javax.ws.rs.ext.Provider
-artifact как «нормальный» Wildfly модуля и ссылки на пользовательскиеjavax.ws.rs.ext.Provider
вgetClasses
метод класса конфигурации REST, которая простираетсяjavax.ws.rs.core.Application
(Drawback: Мы бы перечислить всеjavax.ws.rs.ext.Provider
и REST конечной точки явно вместо автоматическое обнаружение, используемое в данный момент).
Есть ли четвертая возможность достичь этой задачи или есть какие-либо улучшения в трех возможностях выше? Мне не удалось найти какое-либо решение этой (я думал) довольно простой задачи по установке «глобального» обычая javax.ws.rs.ext.Provider
в Wildfly.
слот = «основной» не требуется, но обслуживание = «импорт» главное вам нужно. – ctomc