1

我正在将 Spring Rest 与 Spring DM (OSGi) 一起使用。我需要使用 JAXB 进行编组/解组。当模型对象属于同一个项目时,我可以轻松地将 JAXB 与 Spring 一起使用。但是,当我尝试在 OSGi(Spring DM)中做同样的事情时遇到了问题。因为我将模型对象保存在不同的包中,jaxb2Marshaller所以无法找到带有注释的模型@XmlRootElement

例外是:

org.springframework.beans.factory.xml.XmlBeanDefinitionStoreException:来自 ServletContext 资源 [/WEB-INF/building-servlet.xml] 的 XML 文档中的第 51 行无效;嵌套异常是 org.xml.sax.SAXParseException;行号:51;列号:52;cvc-complex-type.2.4.c:匹配通配符是严格的,但找不到元素'tx:annotation-driven'的声明

请建议我一些解决方法来实现这一点。

4

2 回答 2

1

这很可能与系统捆绑包也提供 jaxb 的事实有关,因为 jre 包含 jaxb。确保导入它的特殊版本,并确保已安装此版本。这可能会对您有所帮助。您可能还需要确保系统包导出的版本配置正确。为此,您需要更改 etc 文件夹中的 jre.properties 并将正确的版本设置为 jaxb 包。

于 2012-12-18T21:11:27.997 回答
0

刚好重温了我的这个帖子。这个问题很久以前就解决了。我使用 Spring 的“开箱即用”JAXB Marshaller (org.springframework.oxm.jaxb.Jaxb2Marshaller) 为我们进行编组和取消编组。对不起,我的回复晚了,感谢您的关注。

于 2013-03-30T06:29:01.563 回答