第一次使用web应用,创建了一个简单的springboot restapi,在本地运行良好。通过将war文件复制到/webapps/目录,将war部署到tomcat服务器,并重新启动tomcat。我通过打开tomcat web应用程序管理器页面检查是否成功,并可以看到列出的应用程序:
http://1xx...:8080/经理/
单击“开始”使其运行时,会出现以下错误:
FAIL - Application at context path [/first_restapi] could not be started
我四处搜索,大多数答案都建议确保包含所有pom文件依赖项,并检查日志。我检查了tomcat服务器上的日志,发现以下错误:
Exception sending context initialized event to listener instance of class
[org.springframework.web.context.ContextLoaderListener]
org.springframework.beans.factory.parsing.BeanDefinitionParsingException: Configuration problem:
Unable to locate Spring NamespaceHandler for XML schema namespace
[http://www.springframework.org/schema/security]
Offending resource: ServletContext resource [/WEB-INF/spring/appServlet/servlet-context.xml]
我没有包含servlet-context.xml文件,因为教程没有显示该文件。但我还是添加了它,仍然得到了相同的错误。有人能帮忙解决这个问题吗?
<?xml version="1.0" encoding="UTF-8"?>
<beans:beans xmlns="http://www.springframework.org/schema/mvc"
xmlns:security="http://www.springframework.org/schema/security"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:beans="http://www.springframework.org/schema/beans"
xmlns:util="http://www.springframework.org/schema/util"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:task="http://www.springframework.org/schema/task"
xmlns:p="http://www.springframework.org/schema/p"
xsi:schemaLocation="http://www.springframework.org/schema/mvc
http://www.springframework.org/schema/mvc/spring-mvc.xsd
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://www.springframework.org/schema/security
http://www.springframework.org/schema/security/spring-security-3.2.xsd
http://www.springframework.org/schema/task
http://www.springframework.org/schema/task/spring-task-3.0.xsd">
<!-- DispatcherServlet Context: defines this servlet's request-processing
infrastructure -->
<!-- Enables the Spring MVC @Controller programming model -->
<annotation-driven />
<security:http auto-config="true" create-session="stateless">
<security:intercept-url pattern="/**" access="ROLE_USER"
requires-channel="http"/>
<security:http-basic />
</security:http>
</beans:beans>
1条答案
按热度按时间oxcyiej71#
你有依赖问题。对于配置文件中(有效地)使用的每个xml名称空间,您需要适当的
NamespaceHandler
. 因此,在您的情况下,使用:beans
或者util
您需要的命名空间spring-beans.jar
,context
或者task
您需要的命名空间spring-context.jar
,mvc
您需要的命名空间spring-webmvc.jar
,security
您需要的命名空间spring-security-config.jar
.你当然没有最后一个依赖。