java - 新 servlet 抛出 javax.servlet.ServletException : Wrapper cannot find servlet class

标签 java jsp servlets netbeans glassfish

现在已经解决这个错误一段时间了...在 netbeans 中,从 Servlet 向导创建的新 servlet 将抛出 500 内部服务器错误。其他时候它找不到服务器类:

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

任何帮助/评论/指导将不胜感激。我花在调试项目上的时间比实际编程项目的时间还多,这让我发疯。

谢谢

最佳答案

不应该使用java作为包名称的一部分。 永远

重命名您的包并重试。

关于java - 新 servlet 抛出 javax.servlet.ServletException : Wrapper cannot find servlet class,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23569846/

相关文章:

java - 无法在 Android studio 中的 woocommerce Rest api v2 中更新客户

java - 我什么时候将内存使用量加倍?

java - 从 Servlet 连接到 MySQL 不工作

java - 使用 jQuery 选择组合框上的项目时,在另一个 jsp 页面中加载特定的 jsp 页面

java - 生成的 DisplayTag 排序和分页链接(url)太长

java - IntelliJ 中的属性文件问题(添加到类路径)JSP(空指针 ex)

java - 如何在 GAE/java 中使用获取/设置 cookie

java - 您可以注入(inject)自定义异常(或其提供者)吗?

java - 使用抽象方法有什么意义?

java - 从jar文件中读取文件,使用netbeans生成的jar