Миграция с Spring DM 1.2 Spring 3/KARAF 4.0.10 на Blueprint, Spring 5 и KARAF 4.2.0

Я использовал KARAF 4.0.10, который устанавливает Spring 3.1.4 в качестве функции загрузки. Мы использовали spring для веб-модуля (spring-mvc) с spring-dm (spring-osgi-web).

Вот мой пример web.xml. Это мой сервлет web.xml Mvc

<servlet>
<servlet-name>javorai-api</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<init-param>
<param-name>contextClass</param-name>
<param-value>org.springframework.osgi.web.context.support.osgibundlexmlwebapplicationcontext</param-value>
</init-param>

Поскольку мы обновили KARAF до 4.2.0, spring обновился до 5.0.4, и spring-dm больше его не поддерживает. сейчас это устарело. основываясь на поиске в Интернете, я нашел предложение перейти на план Gemini в качестве замены spring-dm. Я загрузил модуль gemini-blueprint/IO, Core и extension, настроив его как зависимость от maven.

Не могли бы вы указать, что следует изменить в web.xml, чтобы перейти к плану Gemini в качестве замены spring-dm?

Также есть ли способ заставить его работать без использования плана и прямого обращения к файлам spring jar в web.xml


person Munish Gupta    schedule 07.08.2018    source источник
comment
Поправьте меня, если я ошибаюсь, но проект Gemini тоже давно мертв. Если вы хотите иметь долгосрочное решение, выберите OSGi или Spring, но не используйте их вместе. Причина: Spring — монолит, а OSGi — модульный.   -  person Balazs Zsoldos    schedule 07.08.2018


Ответы (1)


Если вам действительно очень нужно использовать Spring MVC, вы можете использовать ServerOsgiBundleXmlWebApplicationContext, он будет работать. Но я должен предупредить вас, что Spring в среде osgi довольно хакерский, Gemini часто испортит жизненный цикл пакетов и нарушит пакеты aries-blueprint, если вы не примените патч, который я создал для него.

person Cλstor    schedule 08.08.2018
comment
хорошо, я тоже пробовал это, но кажется, что org.eclipse.virgo.web.dm недоступен на maven. кажется, что это мертвый проект сейчас. Я нашел банку с этим и мог видеть, что банка также поддерживает только до Spring 4. с KARAF 4.2.0 устанавливается версия spring 5.0.4. - person Munish Gupta; 09.08.2018
comment
Не могли бы вы предложить мне альтернативы здесь, в настоящее время я использую Spring MVC в OSGI, какие варианты могут быть здесь для меня? Могу ли я полностью отказаться от Spring и использовать любую другую технологию для его поддержки? - person Munish Gupta; 09.08.2018
comment
Вы можете создать простую банку только с классом ServerOsgiBundleXmlWebApplicationContext, он не имеет никаких зависимостей от virgo, только от gemini и spring. Используете ли вы часть MVC только для обслуживания Rest Services или страниц? - person Cλstor; 09.08.2018
comment
Я также использую часть MVC для страниц. - person Munish Gupta; 09.08.2018
comment
Как вы уже предположили, Spring в среде osgi довольно хакерский, какие альтернативные варианты вы можете предложить? я думаю, что в этом случае было бы лучше не использовать spring и попробовать что-то еще в osgi для достижения той же цели. - person Munish Gupta; 09.08.2018
comment
В вашем случае я бы выбрал aries-blueprint в качестве контейнера IOC и использовал подход доски для обслуживания страниц и сервисов. Взгляните здесь , есть много примеров использования aries-blueprint с cxf, сервлетами и т.д. на. - person Cλstor; 09.08.2018
comment
Спасибо, Кастор, за подсказку. Позвольте мне пройти через это и посмотреть, как я могу заменить его на spring-mvc. - person Munish Gupta; 09.08.2018