gpt4 book ai didi

spring - Spring OXM 中的“上下文路径”错误

转载 作者:行者123 更新时间:2023-12-04 18:06:25 29 4
gpt4 key购买 nike

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

Attribute 'context-path' is not allowed to appear in element 'oxm:jaxb2-marshaller'

我对我的 Grails BuildConfig.groovy 有这种依赖:

    compile ('org.springframework:spring-oxm:3.1.0.RELEASE')

以及对我的其他 (Maven) 项目的这种依赖:

    <dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-oxm</artifactId>
<version>3.1.0.RELEASE</version>
</dependency>

下面是我如何为 oxm-marshaller 创建 bean:

<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 项目中创建编码器时,它看起来像这样:

<oxm:jaxb2-marshaller id="marshaller" context-path="com.somepackage.commons"/>

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

<oxm:jaxb2-marshaller id="marshaller" contextPath="com.somepackage.commons"/>

请注意 contextPath 属性的驼峰式命名约定。为什么会这样?

最佳答案

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

关于spring - Spring OXM 中的“上下文路径”错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25562351/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com