Java Can';当使用@Webservlet注释时,不要启动tomcat服务器
我目前正在为学校制作一个项目,其中我必须制作一个基本的登录系统,问题是当我使用@Webservlet注释时,我的tomcat服务器无法启动,这是我的servlet代码:Java Can';当使用@Webservlet注释时,不要启动tomcat服务器,java,jsp,servlets,Java,Jsp,Servlets,我目前正在为学校制作一个项目,其中我必须制作一个基本的登录系统,问题是当我使用@Webservlet注释时,我的tomcat服务器无法启动,这是我的servlet代码: `package controller; import java.io.IOException; import java.util.ArrayList; import java.util.List; import javax.servlet.RequestDispatcher; import javax.servlet.Se
`package controller;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.ws.rs.NotAuthorizedException;
import handlers.RequestHandler;
import service.Service;
@WebServlet("/Controller")
public class Controller extends HttpServlet {
private static final long serialVersionUID = 1L;
private Service service = new Service();
private ControllerFactory controllerFactory = new ControllerFactory();
public Controller() {
super();
}
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
processRequest(request, response);
}
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
processRequest(request, response);
}
protected void processRequest(HttpServletRequest request,
HttpServletResponse response) throws ServletException, IOException {
String action = request.getParameter("action");
String destination = "index.jsp";
if (action != null) {
RequestHandler handler;
try {
handler = controllerFactory.getController(action, service);
destination = handler.handleRequest(request, response);
}
catch (NotAuthorizedException exc) {
List<String> errors = new ArrayList<String>();
errors.add(exc.getMessage());
request.setAttribute("errors", errors);
destination="index.jsp";
}
}
RequestDispatcher view = request.getRequestDispatcher(destination);
view.forward(request, response);
}
}
当我注释掉@Webservlet注释时,服务器会毫无问题地启动
编辑
这是我的web.xml:
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:web="http://xmlns.jcp.org/xml/ns/javaee" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
</web-app>
index.jsp
这些是我的maven依赖项:
<dependencies>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>jstl</artifactId>
<version>1.2</version>
</dependency>
<dependency>
<groupId>javax</groupId>
<artifactId>javaee-web-api</artifactId>
<version>7.0</version>
</dependency>
</dependencies>
javax.servlet
jstl
1.2
爪哇
javaeewebapi
7
从堆栈跟踪
java.lang.NoClassDefFoundError: javax/ws/rs/NotAuthorizedException
我将首先解决NoClassDefFoundError的问题
似乎类路径中缺少了库JAX-RS。通过Maven将其添加为依赖项
之后,您可以转到下一期,如果有的话。您的web.xml是什么样子的?谢谢您的帮助,现在问题已经解决了!Upvote&接受答案是stack overflow表示感谢的方式:-)
java.lang.NoClassDefFoundError: javax/ws/rs/NotAuthorizedException