Java 实例化servlet类时出错-HTTP状态500

Java 实例化servlet类时出错-HTTP状态500,java,servlets,Java,Servlets,正在尝试创建新的servlet。。。。但是得到了错误 HTTP状态500-实例化servlet类时出错 我的servlet类看起来像 package com.example.tutorial; import java.io.IOException; import java.io.PrintWriter; import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; import javax.

正在尝试创建新的servlet。。。。但是得到了错误

HTTP状态500-实例化servlet类时出错

  • 我的servlet类看起来像

    package com.example.tutorial;
    
    import java.io.IOException;
    import java.io.PrintWriter;
    import javax.servlet.ServletException;
    import javax.servlet.annotation.WebServlet;
    import javax.servlet.http.HttpServlet;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    
    @WebServlet(description = "Test servlet this is", urlPatterns = { "/servletexample" })
    public class ServletExample extends HttpServlet {
    private static final long serialVersionUID = 1L;
    
    public ServletExample() {
        super();
    }
    
    protected void service(HttpServletRequest request,
            HttpServletResponse response) throws ServletException, IOException {
        PrintWriter out = response.getWriter();
        out.println("Testing servlet !!!");
    }
    
    }
    
  • My web.xml看起来像:

    <?xml version="1.0" encoding="UTF-8"?>
    <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" 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>ServletJSPExample</display-name>
      <welcome-file-list>
    <welcome-file>index.html</welcome-file>
    <welcome-file>index.htm</welcome-file>
    <welcome-file>index.jsp</welcome-file>
    <welcome-file>default.html</welcome-file>
    <welcome-file>default.htm</welcome-file>
    <welcome-file>default.jsp</welcome-file>
      </welcome-file-list>
    
      <servlet>
        <servlet-name>ServletExample</servlet-name>
        <servlet-class>com.example.tutorial.ServletExample</servlet-class>
      </servlet>
    
      <servlet-mapping>
        <servlet-name>ServletExample</servlet-name>
        <url-pattern>/servletexample</url-pattern>
      </servlet-mapping>
    
    </web-app>
    
    
    ServletJSPExample
    index.html
    index.htm
    index.jsp
    default.html
    default.htm
    default.jsp
    servlete示例
    com.example.tutorial.ServletExample
    servlete示例
    /servlete示例
    

  • 不知道发生了什么。。。。。。非常感谢您的帮助……

    您可以删除注释或web.xml映射

    如果两种方法都需要,则应类似于以下内容:

    @WebServlet(name = "ServletExample", urlPatterns = {"/servletExample"})
    public class ServletExample extends HttpServlet {
    ....
    }
    
    web.xml中的映射应该是:

    <servlet>
        <servlet-name>ServletExample</servlet-name>
        <servlet-class>com.example.tutorial.ServletExample</servlet-class>
    </servlet>
    <servlet-mapping>
        <servlet-name>ServletExample</servlet-name>
        <url-pattern>/servletExample</url-pattern>
    </servlet-mapping>
    
    
    servlete示例
    com.example.tutorial.ServletExample
    servlete示例
    /servlete示例
    

    在我看来,@WebServlet注释中缺少“name”属性。放置它并重试。

    如果500,则会出现异常。请出示stacktrace@WebServlet注释就足够了。您不需要在web.xml中再次为其配置Servlet标记。在Servlet 3.0中,引入了几个新的注释,它们是包javax.Servlet.annotation的一部分。它们仅用于提供元数据。在JSR 315中,可以使用@WebServlet指定Servlet元数据。因此,当您使用@WebServlet之类的注释时,您不再需要任何部署描述符(web.xml)。因此,要么在不使用web.xml的情况下使用@WebServlet注释,要么删除注释并使用web.xml。不要两者都使用。答案在异常和堆栈跟踪中。阅读服务器日志。嗨,谢谢你的帮助。我从web.xml中删除了servlet描述,它运行良好。很高兴它有帮助。。。那么,你为什么不接受它作为答案,帮助那些遇到同样问题的社区呢?