Spring Dynamic Module - Parse Exception при развертывании пакета osgi в IBM Liberty
При развертывании комплекта SPRING DM OSGI в IBM Liberty появляется следующее исключение:
Причина: org.springframework.beans.factory.xml.XmlBeanDefinitionStoreException: строка 2 в XML-документе с URL-адреса [bundleentry://240.fwk843512726/WEB-INF/applicationContext.xml] недействительна; вложенным исключением является org.xml.sax.SAXParseException; systemId: http://www.osgi.org/xmlns/blueprint/v1.0.0/blueprint.xsd; номер строки: 2; номер столбца: 35; s4s-elt-символ: непробельные символы не допускаются в элементах схемы, кроме "xs:appinfo" и "xs: документация". Пила "301 перемещено навсегда".
Что вызывает эту ошибку?
1 ответ
Если вы используете "унаследованную" Spring DM, то вам не следует использовать пространство имен "blueprint". Этот xsd не упакован в пакеты вашего контейнера: SpringDM пытается загрузить его из сети, и некоторый прокси / веб-сервер отправляет перенаправление HTTP (301), которое не является действительным документом xsd.
С SpringDM вы должны использовать только пространства имен Spring.
Тем не менее, SpringDM устарел и не должен использоваться. Вы можете использовать Blueprint или более эффективные службы декларативных служб.
Вы можете использовать две реализации Blueprint: Aries-Blueprint или Gemini Blueprint (который поддерживает Spring 4.3, Blueprint и более или менее совместим с SpringDM)