2013-07-02 144 views
2

我試圖搜索並根據上述問題的答案進行更改,但無法正常工作。我沒有使用任何構建工具。Tomcat未加載Dispatcher Servlet(ClassNotFoundException)

所有jar文件jstl1.2,共同測井公司1.1.3和3.2.3春瓶在的WebContent/WEB-INF/lib目錄

的index.jsp是值得歡迎的文件顯示在Eclipse瀏覽器中正確,但是當我點擊控制器的超鏈接時,404請求資源不可用。從日誌似乎使用Tomcat 7,jre7 Tomcat沒有裝載調度的servlet

我試圖重新啓動/清潔和發佈的tomcat,

,日食kepller 4.0,使用Java EE 2.0

感謝您的幫助

Tomcat的日誌:

ul 02, 2013 1:16:52 PM org.apache.catalina.core.ApplicationContext log 
    I**NFO: No Spring WebApplicationInitializer types detected on classpath 
    Jul 02, 2013 1:16:52 PM org.apache.catalina.core.ApplicationContext log 
    INFO: Marking servlet spring as unavailable 
    Jul 02, 2013 1:16:52 PM org.apache.catalina.core.StandardContext loadOnStartup 
    SEVERE: Servlet /SpringMVC threw load() exception 
    java.lang.ClassNotFoundException:             org.springframework.web.servlet.DispatcherServlet** 
             
    at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1713) 
    at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1558) 
    at org.apache.catalina.core.DefaultInstanceManager.loadClass(DefaultInstanceManager.java:527) 
    at org.apache.catalina.core.DefaultInstanceManager.loadClassMaybePrivileged(DefaultInstanceManager.java:509) 
    at org.apache.catalina.core.DefaultInstanceManager.newInstance(DefaultInstanceManager.java:137) 
    at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1144) 
    at org.apache.catalina.core.StandardWrapper.load(StandardWrapper.java:1088) 
    at org.apache.catalina.core.StandardContext.loadOnStartup(StandardContext.java:5123) 
    at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5407) 
    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150) 
    at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1559) 
    at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1549) 
    at java.util.concurrent.FutureTask$Sync.innerRun(Unknown Source) 
    at java.util.concurrent.FutureTask.run(Unknown Source) 
    at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) 
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) 
    at java.lang.Thread.run(Unknown Source) 

Jul 02, 2013 1:16:53 PM org.apache.coyote.AbstractProtocol start 
INFO: Starting ProtocolHandler ["http-bio-8080"] 
Jul 02, 2013 1:16:53 PM org.apache.coyote.AbstractProtocol start 
INFO: Starting ProtocolHandler ["ajp-bio-8009"] 
Jul 02, 2013 1:16:53 PM org.apache.catalina.startup.Catalina start 
INFO: Server startup in 11462 ms 

的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" xmlns:web="http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" id="WebApp_ID" version="3.0"> 
    <display-name>SpringMVC</display-name> 

     <welcome-file-list> 
        <welcome-file>index.jsp</welcome-file> 
    </welcome-file-list> 
  
    <servlet> 
        <servlet-name>spring</servlet-name> 
        <servlet-class> 
            org.springframework.web.servlet.DispatcherServlet 
        </servlet-class> 
        <load-on-startup>1</load-on-startup> 
    </servlet> 
    <servlet-mapping> 
        <servlet-name>spring</servlet-name> 
        <url-pattern>*.html</url-pattern> 
    </servlet-mapping> 
</web-app> 

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

    xsi:schemaLocation="http://www.springframework.org/schema/mvc 
         http://www.springframework.org/schema/mvc/spring-mvc-3.0.xsd 
         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"> 

    <context:component-scan 
     base-package="com.maverick.springmvc.controller" /> 

    <bean id="viewResolver" 
     class="org.springframework.web.servlet.view.UrlBasedViewResolver"> 
     <property name="viewClass" 
      value="org.springframework.web.servlet.view.JstlView" /> 
     <property name="prefix" value="/WEB-INF/jsp/" /> 
     <property name="suffix" value=".jsp" /> 
    </bean> 

</beans> 

HelloWorldController.java

package com.maverick.springmvc.controller; 

import org.springframework.stereotype.Controller; 
import org.springframework.web.bind.annotation.RequestMapping; 
import org.springframework.web.servlet.ModelAndView; 


@Controller 
public class HelloWorldController { 


    @RequestMapping("/hello") 
    public ModelAndView helloWorld() { 

     System.out.println("test"); 
     String message = "Hello World, Spring 3.0!"; 
     return new ModelAndView("hello", "message", message); 
    } 
} 
+0

嘗試搜索了'DispatcherServlet'在構建路徑,使用Ctrl + Shift + T(在Eclipse),如果得到的罐子被包含在你的項目的lib –

+0

看看一個@ LaabidiRaissi:嗨,正如你所說的那樣,它並沒有在項目庫中顯示,我確實附加了源代碼但沒有工作。 我們如何確保所有jar文件都在項目庫中,我複製了WebInf/lib文件夾中的所有jar文件。 這不夠,或者我們需要別的東西?感謝您指出這一點 – user2477933

+0

我們是否需要源文件?我認爲只有.class文件應該足夠了? – user2477933

回答

2

基於你缺少彈簧webmvc.jar其中包含的DispatcherServlet類的堆棧跟蹤。嘗試再次檢查你的類路徑(WEB-INF/lib)以確保jar在那裏。通常,在Spring MVC的應用程序,你需要這些罐子:

enter image description here

我也建議你使用依賴管理工具(例如:Maven的/常春藤),否則就難於管理的罐子自己

+0

我確實在(WEB-INF/lib)中有上面提到的jar。但它不工作。我已經添加了我的eclipse項目資源管理器視圖。請讓我知道,如果您發現有任何與 – user2477933

+0

不允許添加圖像有關的問題,但我確定該jar存在於您所說的目錄中 – user2477933

+0

我缺少commons-logging-1.1.1.jar。我浪費了將近3個小時.............終於奏效了。謝謝, –

0

只需將所有需要的jar文件添加到WEB-INF/lib文件夾中,然後它就可以用於我。 在這種情況下,只有的DispatcherServlet類中找到

相關問題