2015-07-20 123 views
1

無論我做什麼,都無法運行maven servlet。如果我重新啓動服務器,生病得到一個錯誤:maven servlet HTTP狀態404 -

 HTTP Status 500 - Error instantiating servlet --- 

如果我重新啓動頁面,無需重新啓動服務器 - 生病得到

 HTTP Status 404 - 

有Maven項目結構。

enter image description here web.xml中:

 <!DOCTYPE web-app PUBLIC 
"-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" 
"http://java.sun.com/dtd/web-app_2_3.dtd" > 

    <web-app> 
     <display-name>Archetype Created Web Application</display-name> 
     <servlet> 
      <servlet-name>Cezar</servlet-name> 
      <display-name>Cezar</display-name> 
      <description></description> 
      <servlet-class>Cezar</servlet-class> 
     </servlet> 
     <servlet-mapping> 
      <servlet-name>Cezar</servlet-name> 
      <url-pattern>/Cezar</url-pattern> 
     </servlet-mapping> 
    </web-app> 

Cezar.java:

 import java.io.IOException; 
     import javax.servlet.ServletException; 
     import javax.servlet.http.HttpServlet; 
     import javax.servlet.http.HttpServletRequest; 
     import javax.servlet.http.HttpServletResponse; 

     public class Cezar extends HttpServlet { 
      public void doGet(HttpServletRequest request, HttpServletResponse     response) 
     throws IOException{ 
      PrintWriter out = response.getWriter(); 
      out.println("<html>"); 
      out.println("<body>"); 
      out.println("<h1>Hello Servlet Get</h1>"); 
      out.println("</body>"); 
      out.println("</html>"); 
     } 
    } 

展開組件:

enter image description here

+1

plz分享你的部署組裝details.Right在項目資源管理器中點擊你的web項目 - >選擇'屬性'。在項目屬性下,選擇「部署程序集」。 – Bikku

回答

1

您的應用程序有一個結構性錯誤。

源文件Cezar.java應該在src/main/java而不是src/main/resources

因此,該文件未被編譯到Cezar.class文件中,該文件將被添加到您的Web應用程序的WEB-INF/classes目錄中。

+0

是的,這是我的修補程序。奇怪的是,maven webapp項目沒有帶有java文件夾,所以我不得不自己添加它。很好,謝謝! –

0

是的,他是真實的,並且更好地維護包結構並在web.xml中給出完全限定名稱,例如:您的包名稱。您的servlet類名稱。