【问题标题】:Spring Dynamic Module - Parse Exception while deploying the osgi bundle to IBM LibertySpring Dynamic Module - 将 osgi 包部署到 IBM Liberty 时解析异常
【发布时间】:2018-02-20 09:25:09
【问题描述】:

我在将 SPRING DM OSGI 捆绑包部署到 IBM Liberty 时遇到以下解析异常。

原因: org.springframework.beans.factory.xml.XmlBeanDefinitionStoreException: 来自 URL 的 XML 文档中的第 2 行 [bundleentry://240.fwk843512726/WEB-INF/applicationContext.xml] 是 无效的;嵌套异常是 org.xml.sax.SAXParseException;系统标识: http://www.osgi.org/xmlns/blueprint/v1.0.0/blueprint.xsd;电话号码: 2;列号:35; s4s-elt-character:非空白字符是 不允许在除“xs:appinfo”之外的架构元素中使用 'xs:文档'。看到“301 永久移动”。

是什么导致了这个错误?

【问题讨论】:

  • 可能与您的 applicationContext.xml 中的某些类型的无效字符有关。可以使用 XML [工具](xmlvalidation.com) 在外部验证它。

标签: spring dynamic osgi blueprint-osgi eclipse-gemini


【解决方案1】:

如果您使用“旧版”Spring DM,那么“蓝图”命名空间不是您应该使用的。此 xsd 未打包在容器的捆绑包中:SpringDM 尝试从网络下载它,并且某些代理/Web 服务器发送 HTTP 重定向 (301),这不是有效的 xsd 文档..

对于 SpringDM,您应该只使用 Spring 命名空间。

但是,SpringDM 现在已经过时,不应该使用。您可以使用 Blueprint,或者更好的声明式服务。

您可以使用两种 Blueprint 实现:Aries-Blueprint 或 Gemini Blueprint(支持 Spring 4.3、Blueprint 并且或多或少与 SpringDM 兼容)

【讨论】:

  • 感谢您的及时回复!按照建议,我已更改为 Gemini Blueprint 以替换 Spring DM,但最后我仍然遇到相同的错误。任何参考或示例,可以帮助我摆脱这个问题?
  • gemini-blueprint 给了我们同样的错误,尝试了所有版本。我认为这是因为 http_www.osgi.org/xmlns/blueprint/v1.0.0/blueprint.xsd 最近被移到了 https_osgi.org/xmlns/blueprint/v1.0.0/blueprint.xsd。但是gemini-blueprint 没有正确处理这个问题。
猜你喜欢
  • 2015-02-15
  • 2016-05-30
  • 1970-01-01
  • 1970-01-01
  • 2020-06-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多