我们已经使用给定的应用程序上下文文件创建了一个 Spring mvc portlet:
<?xml version="1.0"?>
<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"
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">
<bean id="viewResolver"
class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="contentType" value="text/html;charset=UTF-8" />
<property name="prefix" value="/WEB-INF/" />
<property name="suffix" value=".jsp" />
<property name="viewClass"
value="org.springframework.web.servlet.view.JstlView" />
</bean>
</beans>
在部署 portlet 时,会抛出以下错误消息:
引起:org.xml.sax.SAXParseException;行号:6;列号:64;cvc-elt.1:找不到元素“beans”的声明。在 com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.createSAXParseException(ErrorHandlerWrapper.java:203) 在 com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.error(ErrorHandlerWrapper.java:134)在 com.sun.org.apache.xerces.internal.impl.XMLErrorReporter.reportError(XMLErrorReporter.java:396) 在 com.sun.org.apache.xerces.internal.impl.XMLErrorReporter.reportError(XMLErrorReporter.java:327)在 com.sun.org.apache.xerces.internal.impl.XMLErrorReporter.reportError(XMLErrorReporter.java:284)
原因:org.springframework.beans.factory.xml.XmlBeanDefinitionStoreException:来自 PortletContext 资源 [/WEB-INF/spring/portletpreferences-portlet.xml] 的 XML 文档中的第 6 行无效;嵌套异常是 org.xml.sax.SAXParseException;行号:6;列号:64;cvc-elt.1:找不到元素“beans”的声明。
项目可以使用相应的 spring jar 作为依赖项,如下所示:
我已经将所有可用的类似问题都提到了这个问题,并尝试了以下方法:
- 添加文档类型标签
- 删除 xsd 版本
- 使用带有 beans 标签的空元素
上下文 xml 文件中的 xml 中是否还有任何缺失的依赖项或错误。
更新:我已将 spring bean 和 spring 上下文 jar 更新为相同的版本,并且还成功地使用 xsd 定义验证了 xml 文件,但在部署后仍然出现相同的错误。