首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Spring OXM中的“‘context path”错误

Spring OXM中的“‘context path”错误
EN

Stack Overflow用户
提问于 2014-08-29 13:47:23
回答 1查看 4.3K关注 0票数 3

我有一个Grails项目,它有一个依赖项,这是我的另一个使用spring-oxm的项目。我的Grails项目可以成功地<import resource="some.xml">通位于.jar内部的.xml,但它显示以下错误:

代码语言:javascript
复制
Attribute 'context-path' is not allowed to appear in element 'oxm:jaxb2-marshaller'

我对我的Grails BuildConfig.groovy有以下依赖:

代码语言:javascript
复制
    compile ('org.springframework:spring-oxm:3.1.0.RELEASE')

以及对我的另一个(Maven)项目的依赖:

代码语言:javascript
复制
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-oxm</artifactId>
        <version>3.1.0.RELEASE</version>
    </dependency>

下面是我为oxm-marshaller创建bean的方式:

代码语言:javascript
复制
<bean id="marshaller" class="org.springframework.oxm.jaxb.Jaxb2Marshaller">
     <property name="contextPath" value="com.somepackage.commons"/>
</bean>

此外,每当我运行Maven项目的测试时,spring应用程序上下文都会完美加载,这就是为什么我确信它可以独立运行的原因。

这里的问题是什么?我在我的两个项目中使用了相同的spring-oxm依赖,为什么我仍然会遇到这些错误?需要帮助!

编辑:快速解决方法...我没有将Maven项目作为依赖项导入,而是尝试将Maven项目中的所有代码复制粘贴到Grails项目中,它工作得很好……还想知道这里出了什么问题吗?

编辑2:我尝试用一种不同的方式创建bean ...我没有创建Spring bean本身,而是使用了oxm名称空间。当我在Maven项目中创建编组程序时,它看起来是这样的:

代码语言:javascript
复制
<oxm:jaxb2-marshaller id="marshaller" context-path="com.somepackage.commons"/>

有趣的是,在我的Grails项目(我之前复制粘贴的项目)中,它看起来是这样的:

代码语言:javascript
复制
<oxm:jaxb2-marshaller id="marshaller" contextPath="com.somepackage.commons"/>

请注意contextPath属性的camelCase约定。为什么会这样呢?

EN

回答 1

Stack Overflow用户

发布于 2015-11-18 04:14:41

检查类路径中实际的spring oxm jar是否指向正确的xsd。您将在META-INF/spring.schemas文件中找到该指针。spring-oxm-3.x.xsd中没有定义“context-path”属性。它在spring-oxm-4.x.xsd中定义

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25562351

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档