HTTP状态500 - 实例化servlet类org.springframework.web.servlet.DispatcherServlet时出错 [英] HTTP Status 500 - Error instantiating servlet class org.springframework.web.servlet.DispatcherServlet

查看:1927
本文介绍了HTTP状态500 - 实例化servlet类org.springframework.web.servlet.DispatcherServlet时出错的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

请不要将此帖标记为重复,因为我在相关问题中找不到任何好的资源。



使用的技术: -
Spring MVC 4.3.3.RELEASE
Gradle 3.1
Tomcat 9.0



我创建了一个动态Web项目,当我运行它时,我得到了以下错误

  HTTP状态500  - 实例化servlet类时出错org.springframework.web.servlet.DispatcherServlet 

类型异常​​报告

消息实例化servlet类时出错org.springframework.web.servlet.DispatcherServlet

说明服务器遇到内部错误,导致无法完成此请求。

exception

javax.servlet.ServletException:实例化servlet类时出错org.springframework.web.servlet.DispatcherServlet
org.apache.catalina.authenticator.AuthenticatorBase。 invoke(AuthenticatorBase.java:522)
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:79)
org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java: 620)
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:349)
org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:1102)
org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66)
org.apache.coyote.AbstractProtocol $ ConnectionHandler.process(AbstractProtocol.java:788)
org.apache.tomcat.util。 net.NioEndpoint $ SocketProcessor.run(NioEndpoint.java:1485)
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
java.util.concurrent.Thre adPoolExecutor $ Worker.run(ThreadPoolExecutor.java:617)
org.apache.tomcat.util.threads.TaskThread $ WrappingRunnable.run(TaskThread.java:61)
java.lang.Thread.run( Thread.java:745)
根本原因

java.lang.ClassNotFoundException:org.springframework.web.servlet.DispatcherServlet
org.apache.catalina.loader.WebappClassLoaderBase.loadClass (WebappClassLoaderBase.java:1299)
org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1133)
org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:522 )
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:79)
org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:620)
org .apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:349)
org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:1102)
org.apache.coyote.AbstractProcess orLight.process(AbstractProcessorLight.java:66)
org.apache.coyote.AbstractProtocol $ ConnectionHandler.process(AbstractProtocol.java:788)
org.apache.tomcat.util.net.NioEndpoint $ SocketProcessor。 run(NioEndpoint.java:1485)
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
java.util.concurrent.ThreadPoolExecutor $ Worker.run(ThreadPoolExecutor.java:617)
org.apache.tomcat.util.threads.TaskThread $ WrappingRunnable.run(TaskThread.java:61)
java.lang.Thread.run(Thread.java:745)

它说无法找到调度程序servlet类但是当我 ctrl + click spring-dispatcher-servlet 中的调度程序servlet路径,它将转到spring Dispatcher Servlet类。我无法解决这个问题的根本原因。



这是我的 web.xml spring-dispatcher-servlet.xml files



web.xml

 <?xml version =1.0encoding =UTF-8?> 
< web-app xmlns:xsi =http://www.w3.org/2001/XMLSchema-instancexmlns =http://xmlns.jcp.org/xml/ns/javaeexsi :schemaLocation =http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsdid =WebApp_IDversion =3.1 >
< display-name> MenuOrder< / display-name>

< welcome-file-list>
< welcome-file> index.jsp< / welcome-file>
< / welcome-file-list>

< servlet>
< servlet-name> spring-dispatcher< / servlet-name>
< servlet-class>
org.springframework.web.servlet.DispatcherServlet
< / servlet-class>
< / servlet>

< servlet-mapping>
< servlet-name> spring-dispatcher< / servlet-name>
< url-pattern> /< / url-pattern>
< / servlet-mapping>

< / web>

spring-dispatcher-servlet.xml

 <?xml version =1.0encoding =UTF-8?> 

< beans xmlns =http://www.springframework.org/schema/beans
xmlns:xsi =http://www.w3.org/2001/XMLSchema -instance
xsi:schemaLocation =http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-2.5.xsd >

< bean id =HandlerMappingclass =org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping/>

< bean id =viewResolver
class =org.springframework.web.servlet.view.InternalResourceViewResolver>
< property name =prefix>
< value> / WEB-INF /< / value>
< / property>

< property name =sufix>
< value> .jsp< / value>
< / property>
< / bean>

< / beans>

项目目录





我的 gradle.build file

  allprojects {
apply plugin:'java'
apply plugin:'eclipse-wtp '
group ='com'
version ='0.0.1-SNAPSHOT'
}

子项目{
tasks.withType(JavaCompile){
options.encoding ='UTF-8'
}
}



allprojects {
task hello {task - > ; println我是$ task.project.name}
}


allprojects {

repositories {
mavenLocal()
jcenter()
mavenCentral()

}


dependencies {

//生产代码使用编译时的SLF4J日志API
// compile'org.slf4j:slf4j-api:1.7.21'


// spring web
编译组: 'org.springframework',名称:'spring-webmvc',版本:'4.3.3.RELEASE'

// spring core
编译组:'org.springframework',名称: 'spring-core',版本:'4.3.3.RELEASE'

//弹簧上下文支持
编译组:'org.springframework',名称:'spring-context-support' ,版本:'4.3.3.RELEASE'


// ORM依赖项

// spring jpa
编译组:'org.springframework。 data',name:'spring-data-jpa',version:'1.10.4.RE LEASE'

// hibernate-entity manager
编译组:'org.hibernate',名称:'hibernate-entitymanager',版本:'5.2.2.Final'

// ORM依赖项结束

// postgres连接器
编译组:'org.postgresql',名称:'postgresql',版本:'9.4-1200-jdbc41'

// Junit
编译组:'junit',名称:'junit',版本:'4.12'

// servlet
编译组:'javax.servlet',名称:'javax.servlet-api',版本:'4.0.0-b01'

编译组:'javax.el',名称:'javax.el- api',版本:'2.2.1'

编译组:'org.springframework',名称:'spring',版本:'3.2.0.RC1'

}
}

整个项目代码可以在

解决方案

您只需在web.xml标记下添加标记即可工作。




Please don't flag this post as a duplicate one because I didn't find any good resource in the relevant question.

Technologies used :- Spring MVC 4.3.3.RELEASE Gradle 3.1 Tomcat 9.0

I created a dynamic web project and when I run it, I get the following error

HTTP Status 500 - Error instantiating servlet class org.springframework.web.servlet.DispatcherServlet

type Exception report

message Error instantiating servlet class org.springframework.web.servlet.DispatcherServlet

description The server encountered an internal error that prevented it from fulfilling this request.

exception

javax.servlet.ServletException: Error instantiating servlet class org.springframework.web.servlet.DispatcherServlet
    org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:522)
    org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:79)
    org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:620)
    org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:349)
    org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:1102)
    org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66)
    org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:788)
    org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.run(NioEndpoint.java:1485)
    java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
    java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
    org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
    java.lang.Thread.run(Thread.java:745)
root cause

java.lang.ClassNotFoundException: org.springframework.web.servlet.DispatcherServlet
    org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1299)
    org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1133)
    org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:522)
    org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:79)
    org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:620)
    org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:349)
    org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:1102)
    org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66)
    org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:788)
    org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.run(NioEndpoint.java:1485)
    java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
    java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
    org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
    java.lang.Thread.run(Thread.java:745)

It is saying that it could not find the dispatcher servlet class but when I ctrl + click the dispatcher servlet path in the spring-dispatcher-servlet , It lands to the spring Dispatcher Servlet class. I could not get the root cause of this problem.

Here are my web.xml and spring-dispatcher-servlet.xml files

web.xml

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://xmlns.jcp.org/xml/ns/javaee" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd" id="WebApp_ID" version="3.1">
  <display-name>MenuOrder</display-name>

  <welcome-file-list>
    <welcome-file>index.jsp</welcome-file>
  </welcome-file-list>

  <servlet>
    <servlet-name>spring-dispatcher</servlet-name>
    <servlet-class>
        org.springframework.web.servlet.DispatcherServlet
    </servlet-class>
  </servlet>

  <servlet-mapping>
    <servlet-name>spring-dispatcher</servlet-name>
    <url-pattern>/</url-pattern>
  </servlet-mapping>

</web>

spring-dispatcher-servlet.xml

<?xml version="1.0" encoding="UTF-8"?>

<beans xmlns="http://www.springframework.org/schema/beans"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://www.springframework.org/schema/beans 
    http://www.springframework.org/schema/beans/spring-beans-2.5.xsd">

    <bean id = "HandlerMapping" class = "org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping"/>

    <bean id = "viewResolver" 
        class = "org.springframework.web.servlet.view.InternalResourceViewResolver">
        <property name = "prefix">
            <value>/WEB-INF/</value>
        </property>

        <property name = "sufix">
            <value>.jsp</value>
        </property>
        </bean>

</beans>

Project directory

My gradle.build file

allprojects{
apply plugin: 'java'
apply plugin: 'eclipse-wtp'
group = 'com'
version = '0.0.1-SNAPSHOT'
}

subprojects{
    tasks.withType(JavaCompile){
    options.encoding = 'UTF-8'
    }
}



allprojects {
    task hello { task -> println "I'm $task.project.name" }
}


allprojects{

repositories {
    mavenLocal()
    jcenter()
    mavenCentral()

}


    dependencies {

        // The production code uses the SLF4J logging API at compile time
    //    compile 'org.slf4j:slf4j-api:1.7.21'


        //spring web
        compile group: 'org.springframework', name: 'spring-webmvc', version: '4.3.3.RELEASE'

        // spring core
        compile group: 'org.springframework', name: 'spring-core', version: '4.3.3.RELEASE'

        // spring context support
        compile group: 'org.springframework', name: 'spring-context-support', version: '4.3.3.RELEASE'


        // ORM dependencies

        // spring jpa
        compile group: 'org.springframework.data', name: 'spring-data-jpa', version: '1.10.4.RELEASE'

        // hibernate-entity manager
        compile group: 'org.hibernate', name: 'hibernate-entitymanager', version: '5.2.2.Final'

        // End of ORM dependencies

        // postgres connector
        compile group: 'org.postgresql', name: 'postgresql', version: '9.4-1200-jdbc41'

        // Junit
        compile group: 'junit', name: 'junit', version: '4.12'

        // servlet
        compile group: 'javax.servlet', name: 'javax.servlet-api', version: '4.0.0-b01'

        compile group: 'javax.el', name: 'javax.el-api', version: '2.2.1'

        compile group: 'org.springframework', name: 'spring', version: '3.2.0.RC1'

        }
        }

The whole project code can be found in https://github.com/viper-pranish/menu-order

Dependencies inside the project structure

解决方案

you can simply add tag under tag of web.xml, It will work.

这篇关于HTTP状态500 - 实例化servlet类org.springframework.web.servlet.DispatcherServlet时出错的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
相关文章
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆