当前位置: 首页 > 知识库问答 >
问题:

未能在Spring MVC应用程序中检测到ServletContainerInitializers的上下文运行时错误

汪德明
2023-03-14

我正在从头开始创建SpringWebMVC应用程序,而不使用原型。应用程序构建成功,但创建了运行时异常。我使用Tomcat-7,类路径中有spring webmvc。请检查下面的buildpath图像。需要帮助理解这里的问题吗

严重:无法检测名为[/samplerestservice]Java . io . io exception的上下文的servletcontainerinitializer:Java . lang . classnotfoundexception:org . spring framework . web . springservletcontainerinitializer at org . Apache . catalina . startup . web appserviceloader . load services(web appserviceloader . Java:199)at org . Apache . catalina . startup . web appserviceloader . load(web appserviceloader . Java:157)at org . Apache . catalina . startup . context config...还有15个

pom.xml

    <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <groupId>com.sample.restservice</groupId>
  <artifactId>samplerestservice</artifactId>
  <version>0.0.1-SNAPSHOT</version>
<dependencyManagement>
    <dependencies>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-framework-bom</artifactId>
            <version>4.1.9.RELEASE</version>
            <type>pom</type>
            <scope>import</scope>
        </dependency>
    </dependencies>
</dependencyManagement>

<dependencies>
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-context</artifactId>
    </dependency>
      <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-webmvc</artifactId>
    </dependency>
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-core</artifactId>
         <exclusions>
            <exclusion>
                <groupId>commons-logging</groupId>
                <artifactId>commons-logging</artifactId>
            </exclusion>
        </exclusions>
    </dependency>

    <dependency>
        <groupId>org.slf4j</groupId>
        <artifactId>jcl-over-slf4j</artifactId>
        <version>1.5.8</version>
    </dependency>
    <dependency>
        <groupId>org.slf4j</groupId>
        <artifactId>slf4j-api</artifactId>
        <version>1.5.8</version>
    </dependency>
    <dependency>
        <groupId>org.slf4j</groupId>
        <artifactId>slf4j-log4j12</artifactId>
        <version>1.5.8</version>
    </dependency>
    <dependency>
        <groupId>log4j</groupId>
        <artifactId>log4j</artifactId>
        <version>1.2.14</version>
    </dependency>



</dependencies>
    <build>
        <plugins>
            <plugin>
                <groupId>org.apache.tomcat.maven</groupId>
                <artifactId>tomcat7-maven-plugin</artifactId>
                <version>2.2</version>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>3.1</version>
                <configuration>
          <source>1.7</source>
          <target>1.7</target>
        </configuration>
            </plugin>
        </plugins>
    </build>
</project>

web.xml

<web-app xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="
    http://java.sun.com/xml/ns/javaee
    http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
version="3.0">

 <servlet>
    <servlet-name>restService-dispatcher</servlet-name>
    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
    <load-on-startup>1</load-on-startup>
</servlet>

<servlet-mapping>
    <servlet-name>restService-dispatcher</servlet-name>
    <url-pattern>/*</url-pattern>
</servlet-mapping>

</web-app>

restService-dispatcher-servlet.xml

        <beans xmlns="http://www.springframework.org/schema/beans"
        xmlns:mvc="http://www.springframework.org/schema/mvc"
        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/conext
            http://www.springframework.org/schema/context/spring-context.xsd
            http://www.springframework.org/schema/mvc
            http://www.springframework.org/schema/mvc/spring-mvc.xsd">

       <context:component-scan base-package="samplerestservice" />
       <mvc:annotation-driven></mvc:annotation-driven>

</beans>

构建路径

部署程序集

共有3个答案

薛承志
2023-03-14

从您在Spring问题跟踪器SPR-13872上创建的问题来看,似乎这个问题与Spring没有严格关系,而可能来自其他原因。

白越
2023-03-14

你为什么想手工配置这些东西?最近,开始使用Spring的推荐方法是使用Spring Boot,它会根据< code>pom.xml和类路径中的内容自动配置合理的默认值。必要时,可以在Java和属性文件中对配置进行进一步的手动调整。它比传统方式更干净、更快捷、更省事。< code > spring-boot-we b-starter 还嵌入了一个预先配置为在端口8080上运行的< code>tomcat实例。spring的人提供了一个名为SPRING INITIALIZR的官方工具,在这里你可以选择在你的< code>spring-boot应用程序中包含哪些SPRING项目,它会给你一个包含< code>pom.xml中所有正确内容和正确文件夹结构的项目。您只需要使用import将它导入eclipse

墨雨华
2023-03-14

检查此错误行:

严重:未能检测到名为[/samplerestservice]的上下文的ServletContainerInitializers

它需要您在代码中定义的一些ContainerInitializerObject。

 类似资料:
  • 我试图在SpringMVC中运行SpringBoot应用程序,在SpringMVCPOM中添加SpringBoot应用程序依赖项,并扫描SpringBoot包,但我面临以下问题

  • 我试图打印一个图像在兄弟SDK在我的应用程序。 如果有人知道如何修理,请帮助我:(

  • 我有一个布局,要求用户输入名称和日期。用于输入我使用的日期https://github.com/ErNaveen/MaterialDateTimePicker库,也可以使用OkHttpLibrary将数据发送到服务器。当我在输入两个数据后单击提交按钮时,我得到了以下错误。响应的作用域。。。 错误:

  • 除了上面的命令之外,我还尝试了 “sudo pm2 start npm--branch_env=stage node_env=production port=80 node appserverstart.js” 请救命! ----错误详细信息---- AppServerStart.js -----附加信息----服务器:CentOS Linux version 7 core,npm版本:6.4.1

  • 预期行为 根据Spring Cloud Kubernetes文档,对于Spring应用程序来说,检测它何时在pod中运行所需的全部工作就是使用依赖项将Spring Cloud Kubernetes添加到类路径中。 这会触发两个事件: null https://cloud.spring.io/spring-cloud-static/spring-cloud-kubernetes/1.1.0.rele

  • 我正在开发一个spring boot(V2.2.4)应用程序,专门添加集成测试,该测试利用Testcontainers实例化一个docker容器,该容器运行一个Postgres实例进行测试,以对其执行数据库事务。这些测试通过Liquibase将我们的数据库模式推送到Postgres实例中。我是按照这个指南实现的。到测试时Postgres的连接由一个名为TestPostgresConfig的类管理。