Я занимался исследованием выставления плагинов Eclipse в качестве веб-сервисов, но я запутался.
Мое требование в основном состоит в создании серверной части Equinox для набора веб-сервисов.Я буду интенсивно использовать EMF и связанные с ним проекты, поэтому с этой целью я читал об Equinox / OSGI и вариантах создания того, что мне нужно.
Однако есть некоторые загадочные моменты и вообще множество проектов вокруг.Учитывая выводы ниже, я хотел бы услышать ваши предложения.Может быть, есть вариант, который мне не хватает, или, может быть, вы сделали это раньше.Вот номинанты (барабанная дробь)
Хостинг Equinox в веб-контейнере.Используя bridge.war, плагины могут предоставлять сервлет.Проблема в том, что для использования хороших REST-фреймворков, таких как RestEasy (мой любимый), REST-фреймворк должен быть пакетом osgi, который будет жить во время выполнения Equionox.Я провел 3 дня, и из-за проблем с загрузчиком классов, это не работает.Теперь я убежден, что я не смогу получить RestEasy в Равноденствие.Я могу использовать RestEasy в веб-контейнере и использовать сериализацию / десериализацию XML, чтобы заставить код в веб-контейнере взаимодействовать с кодом в Equionox, но это кажется пустой тратой ресурсов.Тем не менее, это может сработать.
Другой вариант - ECF, представляющий собой реализацию распределенного OSGI, который поддерживает SOAP / Rest.Тем не менее, я не смог найти четкого учебника, который бы просто представлял размещенную функциональность Equinox как веб-сервис.Так что это по-прежнему вынуждает меня не использовать RestEasy, но, по крайней мере, это дает мне подходящую основу для общения с Equinox.Я, вероятно, все еще должен держать это в веб-контроллере для масштабируемости.
Затем есть Eclipse Virgo, который, кажется, поддерживает хостинг веб-приложений наряду со временем выполнения OSGI, и, очевидно, размещенный в веб-контейнере код может взаимодействовать с кодом времени выполнения OSGI.Тем не менее, я не уверен, что смогу обойти классы, поскольку аннотированный Jaxb тип A, созданный в веб-контейнере, скорее всего, использует загрузчик классов другой сети, чем плагин времени выполнения OSGI.Кроме того, эта установка блокирует меня в Деве, и я предпочел бы пойти с JBoss и т. Д. Для производственного использования.
Итак, учитывая эти параметры и, возможно, больше, о которых я сейчас не знаю, как бы вы представили EMF и другие основанные на платформе Eclipse проекты в качестве веб-сервисов?
Редактировать: основанные наответ я хотел бы добавить больше.Частично детали вопроса, частично комментарии, которые не вписываются в раздел комментариев.
Мои исследования после вопроса позволили мне точно сказать, с каким ответом я согласился: Apache CXF теперь является реализацией Distributed OSGI, и это хорошо.Я отказался от RestEasy.Моя текущая проблема - у меня уже есть XSD, который создал мои классы.RestEasy сделал это очень легко разоблачить, и я должен был бы сделать то же самое здесь.Мои плагины должны будут использовать эти классы на основе JAXB.В худшем случае я могу попытаться использовать проект Eclipse Link, который предлагает поддержку JAXB, для создания содержимого XML и передать его либо через базовое использование сервлета, либо в виде строковых значений на основе CXF.Поэтому решения, обсуждаемые здесь, не кажутся идеальными, но я думаю, что это лучшее, что можно сделать на данный момент.