HTTP状态500 - Servlet.init()为servlet Dispatcher抛出异常 [英] HTTP Status 500 - Servlet.init() for servlet Dispatcher threw exception

查看:213
本文介绍了HTTP状态500 - Servlet.init()为servlet Dispatcher抛出异常的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

 < html> 
< head>
< title>输入新的页面< / title>
< / head>

< body>

< div id =editPresPage>
< form action =editPresPage.domethod =post>
< label>输入页面ID< / label>< input type =textname =page_id/>
< label>输入Header1< / label>< input type =textname =h1/>
< label>输入Header2< / label>< input type =textname =h2/>
< label>输入Header3< / label>< input type =textname =h3/>
< label>输入Header4< / label>< input type =textname =h4/>
< label>输入页面文本< / label>< input type =textname =page_text/>

< input type =submitvalue =添加新页面/>
< / form>
< / div>


< / body>
< / html>

我收到错误HTTP Status 500 - Servlet.init()为servlet Dispatcher抛出异常我的浏览器。

在我的命令行窗口(当我运行tomcat的start.batch文件时打开)
我得到以下错误:



log4j:WARN没有找到记录器的追加者(org.springframework.web.servlet.dispatcherservlet)



我的Dispatcher-servlet.xml文件:

 < beans xmlns =http://www.springframework.org/ schema / beans
xmlns:xsi =http://www.w3.org/2001/XMLSchema-instance
xmlns:p =http://www.springframework.org/schema/ p
xmlns:context =http://www.springframework.org/schema/context
xsi:schemaLocation =
http://www.springframework.org/schema/ beans
http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
http://www.springframework.org/schema/context
http:/ / W ww.springframework.org/schema/context/spring-context-3.0.xsd\">

< import resource =/ application.xml/>

< bean name =/ editPresPage.do
class =my.pack.webTier.control.EditPresPageController>
< property name =page_manager_serviceref =page_manager_service/>
< / bean>

<! - 我也尝试使用注释 - >
<! - < context:component-scan base-package =my.pack/> - >

< / beans>

这是我的web.xml文件:

 <?xml version =1.0encoding =UTF-8?> 
< 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_2_5.xsd
version =2.5>

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

< servlet-mapping>
< servlet-name> Dispatcher< / servlet-name>
< url-pattern> *。do< / url-pattern>
< / servlet-mapping>

<! - Tomcat配置 - >
< Context path =/ myWebAppdocBase =../ tomcat\work\Catalina\localhost\mywebapptomcat\work\Catalina\localhost\mywebapp>
< Loader
loaderClass =org.springframework.instrument.classloading.tomcat.TomcatInstrumentableClassLoader/>
< / Context>

< / web-app>

这是我的控制器:

  package my.pack.webTier.control; 

import my.pack.dataAccessTier.domain.Presentation_page;
import my.pack.serviceTier.services.Page_manager_service;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.servlet.ModelAndView;

// @ Controller
public class EditPresPageController {

// @ Autowired
private Page_manager_service page_manager_service;

public void setPage_manager_service(Page_manager_service page_manager_service){
this.page_manager_service = page_manager_service;
}

@RequestMapping(/ editPresPage)
public ModelAndView EditPresPage(@RequestParam(page_id)int page_id,
@RequestParam(h1) String h1_value,
@RequestParam(h2)String h2_value,
@RequestParam(h3)String h3_value,
@RequestParam(h4)String h4_value,
@ RequestParam(page_text)String page_text

{
Presentation_page new_page = new Presentation_page(page_id,h1_value,h2_value,
h3_value,h4_value,page_text);

page_manager_service.create_new_page(new_page);


返回新的ModelAndView(/ thanks.html);

}


}

这是栈跟踪:



异常

  javax.servlet.ServletException :Servlet.init()for servlet Dispatcher抛出异常
org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472)
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve .java:99)
org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:929)
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:407)
org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1002)
org.apache.coyote.AbstractProtocol $ AbstractConnectionHandler.process(AbstractProtocol.java:585)
org.apache .tomcat.util.net.JIoEndpoint $ SocketProcessor.run(JIoEndpoint.java:312)
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110)
java.util.concurrent.Th readPoolExecutor $ Worker.run(ThreadPoolExecutor.java:603)
java.lang.Thread.run(Thread.java:722)

我正在使用spring MVC 3.2,eclipse 3.7,springTomcat / 7.0.30,并在我的项目中使用ANT。



ve搜索了这个要求的答案 - 并没有找到一个。

解决方案

你将调度器映射到* .do:

 < servlet-mapping> 
< servlet-name> Dispatcher< / servlet-name>
< url-pattern> *。do< / url-pattern>
< / servlet-mapping>

但是你的控制器被映射到没有.do的url:

  @RequestMapping(/ editPresPage)

尝试将其更改为:

  @RequestMapping(/ editPresPage.do)


When i'm trying to run this simple html form:

   <html>
       <head>
        <title>Enter a new Page</title>
       </head>

       <body>

          <div id="editPresPage">
             <form action="editPresPage.do" method="post"> 
            <label>Enter Page ID</label><input type="text" name="page_id"/>
            <label>Enter Header1</label><input type="text" name="h1"/>
            <label>Enter Header2</label><input type="text" name="h2"/>
            <label>Enter Header3</label><input type="text" name="h3"/>
            <label>Enter Header4</label><input type="text" name="h4"/>            
            <label>Enter Page Text</label><input type="text" name="page_text"/>

            <input type="submit" value="Add New Page"/>
         </form>              
          </div>


       </body>
    </html>

I'm getting the error HTTP Status 500 - Servlet.init() for servlet Dispatcher threw exception in my browser.

In my command line window (which opens when i'm running the tomcat's start.batch file) i'm getting the following error:

log4j:WARN No appenders could be found for logger(org.springframework.web.servlet.dispatcherservlet)

That my Dispatcher-servlet.xml file:

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

        <import resource="/application.xml"/>

        <bean name="/editPresPage.do"
                class="my.pack.webTier.control.EditPresPageController" >
            <property name="page_manager_service" ref="page_manager_service"/>
        </bean> 

       <!--  I also tried using with annotations -->    
        <!-- <context:component-scan base-package="my.pack"/> -->        

</beans>

That's my web.xml file:

<?xml version="1.0" encoding="UTF-8"?>
<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_2_5.xsd"
         version="2.5">

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

    <servlet-mapping>
       <servlet-name>Dispatcher</servlet-name>
       <url-pattern>*.do</url-pattern>
</servlet-mapping>

    <!-- Tomcat configuration -->
    <Context path="/myWebApp" docBase="../tomcat\work\Catalina\localhost\mywebapptomcat\work\Catalina\localhost\mywebapp">
    <Loader
    loaderClass="org.springframework.instrument.classloading.tomcat.TomcatInstrumentableClassLoader"/>
    </Context>

</web-app>

And thats my controller:

package my.pack.webTier.control;

import my.pack.dataAccessTier.domain.Presentation_page;
import my.pack.serviceTier.services.Page_manager_service;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.servlet.ModelAndView;

//@Controller
public class EditPresPageController {

    //@Autowired
    private Page_manager_service page_manager_service;

    public void setPage_manager_service(Page_manager_service page_manager_service) {
        this.page_manager_service = page_manager_service;
    }

    @RequestMapping("/editPresPage")
    public ModelAndView EditPresPage(@RequestParam("page_id") int page_id,
                                     @RequestParam("h1") String h1_value,
                                     @RequestParam("h2") String h2_value,
                                     @RequestParam("h3") String h3_value,
                                     @RequestParam("h4") String h4_value,
                                     @RequestParam("page_text") String page_text)

    {
        Presentation_page new_page=new Presentation_page(page_id,h1_value,h2_value,
                h3_value,h4_value,page_text);

        page_manager_service.create_new_page(new_page);


        return new ModelAndView("/thanks.html");

    }


}

Thats the stacktrace:

exception

javax.servlet.ServletException: Servlet.init() for servlet Dispatcher threw exception
    org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472)
    org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:99)
    org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:929)
    org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:407)
    org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1002)
    org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:585)
    org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:312)
    java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110)
    java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603)
    java.lang.Thread.run(Thread.java:722)

I'm working with spring MVC 3.2, eclipse 3.7, springTomcat/7.0.30 and using ANT in my project.

I've searched for an answer for this requirements - and didn't found one.

解决方案

You map your dispatcher on *.do:

<servlet-mapping>
   <servlet-name>Dispatcher</servlet-name>
   <url-pattern>*.do</url-pattern>
</servlet-mapping>

but your controller is mapped on an url without .do:

@RequestMapping("/editPresPage")

Try changing this to:

@RequestMapping("/editPresPage.do")

这篇关于HTTP状态500 - Servlet.init()为servlet Dispatcher抛出异常的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

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