2014-05-09 32 views
1

一直在處理這個錯誤一段時間...在netbeans中,從Servlet嚮導創建的新servlet將拋出500內部服務器錯誤。其他時候,它會找不到服務器類:新的servlet拋出javax.servlet.ServletException:包裝找不到servlet類

HTTP Status 500 - Internal Server Error 

type Exception report 

messageInternal Server Error 

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

exception 

javax.servlet.ServletException: Wrapper cannot find servlet class java.markbratanov.domain.login or a class it depends on 
root cause 

java.lang.ClassNotFoundException: java.markbratanov.domain.login 
note The full stack traces of the exception and its root causes are available in the GlassFish Server Open Source Edition 4.0 logs. 

GlassFish Server Open Source Edition 4.0 

我重建項目,清潔它...檢查web.xml中,仍然看到了同樣的問題。

的web.xml

<?xml version="1.0" encoding="UTF-8"?> 
<web-app version="3.1" xmlns="http://xmlns.jcp.org/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd"> 
    <context-param> 
     <param-name>contextConfigLocation</param-name> 
     <param-value>/WEB-INF/applicationContext.xml</param-value> 
    </context-param> 
    <listener> 
     <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class> 
    </listener> 
    <servlet> 
     <servlet-name>dispatcher</servlet-name> 
     <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> 
     <load-on-startup>2</load-on-startup> 
    </servlet> 
    <servlet> 
     <servlet-name>accountInformation</servlet-name> 
     <servlet-class>markbratanov.domain.AccountInformation</servlet-class> 
    </servlet> 
    <servlet> 
     <servlet-name>transferFunds</servlet-name> 
     <servlet-class>AccountTransfers</servlet-class> 
    </servlet> 
    <servlet> 
     <servlet-name>login</servlet-name> 
     <servlet-class>java.markbratanov.domain.login</servlet-class> 
    </servlet> 
    <servlet-mapping> 
     <servlet-name>dispatcher</servlet-name> 
     <url-pattern>*.htm</url-pattern> 
    </servlet-mapping> 
    <servlet-mapping> 
     <servlet-name>accountInformation</servlet-name> 
     <url-pattern>/accountInformation</url-pattern> 
    </servlet-mapping> 
    <servlet-mapping> 
     <servlet-name>transferFunds</servlet-name> 
     <url-pattern>/transferFunds</url-pattern> 
    </servlet-mapping> 
    <servlet-mapping> 
     <servlet-name>login</servlet-name> 
     <url-pattern>/login</url-pattern> 
    </servlet-mapping> 
    <session-config> 
     <session-timeout> 
      30 
     </session-timeout> 
    </session-config> 
    <welcome-file-list> 
     <welcome-file>redirect.jsp</welcome-file> 
    </welcome-file-list> 
</web-app> 

login.java

package java.markbratanov.domain; 

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

/** 
* 
* @author Mark 
*/ 
public class login extends HttpServlet { 

    /** 
    * Processes requests for both HTTP <code>GET</code> and <code>POST</code> 
    * methods. 
    * 
    * @param request servlet request 
    * @param response servlet response 
    * @throws ServletException if a servlet-specific error occurs 
    * @throws IOException if an I/O error occurs 
    */ 
    protected void processRequest(HttpServletRequest request, HttpServletResponse response) 
      throws ServletException, IOException { 
     response.setContentType("text/html;charset=UTF-8"); 
     try (PrintWriter out = response.getWriter()) { 
      /* TODO output your page here. You may use following sample code. */ 
      out.println("<!DOCTYPE html>"); 
      out.println("<html>"); 
      out.println("<head>"); 
      out.println("<title>Servlet login</title>");    
      out.println("</head>"); 
      out.println("<body>"); 
      out.println("<h1>Servlet login at " + request.getContextPath() + "</h1>"); 
      out.println("</body>"); 
      out.println("</html>"); 
     } 
    } 

    // <editor-fold defaultstate="collapsed" desc="HttpServlet methods. Click on the + sign on the left to edit the code."> 
    /** 
    * Handles the HTTP <code>GET</code> method. 
    * 
    * @param request servlet request 
    * @param response servlet response 
    * @throws ServletException if a servlet-specific error occurs 
    * @throws IOException if an I/O error occurs 
    */ 
    @Override 
    protected void doGet(HttpServletRequest request, HttpServletResponse response) 
      throws ServletException, IOException { 
     processRequest(request, response); 
    } 

    /** 
    * Handles the HTTP <code>POST</code> method. 
    * 
    * @param request servlet request 
    * @param response servlet response 
    * @throws ServletException if a servlet-specific error occurs 
    * @throws IOException if an I/O error occurs 
    */ 
    @Override 
    protected void doPost(HttpServletRequest request, HttpServletResponse response) 
      throws ServletException, IOException { 
     processRequest(request, response); 
    } 

    /** 
    * Returns a short description of the servlet. 
    * 
    * @return a String containing servlet description 
    */ 
    @Override 
    public String getServletInfo() { 
     return "Short description"; 
    }// </editor-fold> 

} 

封裝佈局:

enter image description here

任何幫助/意見/指導將不勝感激。我花了更多的時間來調試項目,而不是實際編寫項目,這讓我瘋狂。

感謝

+1

首先,**從不**包含* java *作爲你的包名稱的一部分。其次,發佈您正在觸發的這種請求會導致此異常出現。 –

+0

@LuiggiMendoza好的。會重構併發布異常。 1秒。 – markbratanov

+0

@LuiggiMendoza重構從包中刪除java。我向glassfish服務器發出了一個簡單的獲取請求:localhost:8080/TitanBank/login – markbratanov

回答

2

不應該使用的Java爲您包的名稱的一部分。 EVER

重新命名您的軟件包並重試。

相關問題