我正在进行一个 Spring 4、java 8 项目,试图从之前的错误处理中恢复过来。
我的任务是恢复源代码管理中丢失的 Web 服务版本。我通过反编译战争并将更改放回源代码来做到这一点。在执行此操作时,我在 applicationContext.xml 中发现了以下几行。
<mvc:cors>
<mvc:mapping path="/**"
allowed-origins="*"
allowed-methods="POST, GET, PUT, OPTIONS, DELETE"
allowed-headers="*"
allow-credentials="false"
max-age="4800" />
</mvc:cors>
我将它们复制到我的 applicationContext.xml 中。我立即收到以下错误。
org.springframework.beans.factory.xml.XmlBeanDefinitionStoreException: Line 67 in XML document from ServletContext resource [/WEB-INF/applicationContext.xml] is invalid; nested exception is org.xml.sax.SAXParseException; lineNumber: 67; columnNumber: 13; cvc-complex-type.2.4.c: The matching wildcard is strict, but no declaration can be found for element 'mvc:cors'.
带有 xmlns 的 beans 定义在版本之间是相同的:
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:mvc="http://www.springframework.org/schema/mvc"
xmlns:mybatis="http://mybatis.org/schema/mybatis-spring"
xmlns:tx="http://www.springframework.org/schema/tx"
xmlns:security="http://www.springframework.org/schema/security"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context.xsd
http://mybatis.org/schema/mybatis-spring
http://mybatis.org/schema/mybatis-spring.xsd
http://www.springframework.org/schema/tx
http://www.springframework.org/schema/tx/spring-tx.xsd
http://www.springframework.org/schema/mvc
http://www.springframework.org/schema/mvc/spring-mvc.xsd
http://www.springframework.org/schema/security
http://www.springframework.org/schema/security/spring-security-3.2.xsd"
>
我查看了 spring-mvc def,但那里没有关于 cors 的内容。
我做了一些搜索,虽然有些网站告诉你如何像这样使用 cors,但没有一个网站指定用于引入它的命名空间。
有人有什么建议吗?
@M.Deinum 的评论(尽管是居高临下的)是正确的。除了丢失的源代码之外,他们显然还对构建进行了更改,而我正在使用错误的库进行构建。纠正这个问题解决了我的问题。