【发布时间】:2012-09-21 11:51:43
【问题描述】:
我正在使用 Spring Rest 和 Spring DM (OSGi)。我需要使用 JAXB 进行编组/解组。当模型对象属于同一个项目时,我可以轻松地将 JAXB 与 Spring 一起使用。但是,当我尝试在 OSGi(Spring DM)中做同样的事情时遇到了问题。因为我将模型对象保存在不同的包中,jaxb2Marshaller 无法找到带有注释@XmlRootElement 的模型。
例外是:
org.springframework.beans.factory.xml.XmlBeanDefinitionStoreException: 来自 ServletContext 资源的 XML 文档中的第 51 行 [/WEB-INF/building-servlet.xml] 无效;嵌套异常是 org.xml.sax.SAXParseException;行号:51;列号:52; cvc-complex-type.2.4.c:匹配通配符是严格的,但是没有 可以为元素 'tx:annotation-driven' 找到声明
请建议我一些解决方法来实现这一点。
【问题讨论】:
-
你定义了 tx 的命名空间和架构了吗?
-
是的,我确实这样做了。我有一个带有 Spring 启用的 Rest 控制器的 Spring DM 原型。我使用 Spring OXM 进行编组/取消编组并像这样配置我的模型对象:
它工作得很好。但是,它不适用于 OSGi 捆绑包。我将控制器放在一个包中,将模型对象放在另一个包中,这不起作用。 com.smartpants.artwork.domain.Person com.smartpants.artwork.domain.People
标签: spring-mvc osgi