部署restapi war并从app manager开始在上下文路径上生成错误fail-application

5kgi1eie  于 2021-07-13  发布在  Java
关注(0)|答案(1)|浏览(268)

第一次使用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>
oxcyiej7

oxcyiej71#

你有依赖问题。对于配置文件中(有效地)使用的每个xml名称空间,您需要适当的 NamespaceHandler . 因此,在您的情况下,使用: beans 或者 util 您需要的命名空间 spring-beans.jar , context 或者 task 您需要的命名空间 spring-context.jar , mvc 您需要的命名空间 spring-webmvc.jar , security 您需要的命名空间 spring-security-config.jar .
你当然没有最后一个依赖。

相关问题