将Jetty处理程序中未经检查的异常传播到主线程

时间:2016-03-11 00:50:58

标签: java jetty embedded-jetty

我试图在我的Jetty处理程序中抛出一个运行时异常。但是,似乎Jetty吞下了异常并继续听取新的请求。我知道这对大多数人来说是一种理想的行为,因为我们不希望服务器因未经检查的异常而死亡。

虽然,我仍然想知道我能以某种方式告诉Jetty向上传播到主线程吗?

我的例子如下:

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.ServletException;
import java.io.IOException;
import org.eclipse.jetty.server.Server;
import org.eclipse.jetty.server.Request;
import org.eclipse.jetty.server.handler.AbstractHandler;

public class HelloWorld extends AbstractHandler
{
    public void handle(String target,
                       Request baseRequest,
                       HttpServletRequest request,
                       HttpServletResponse response)
            throws IOException, ServletException
    {
        response.setContentType("text/html;charset=utf-8");
        response.setStatus(HttpServletResponse.SC_OK);
        baseRequest.setHandled(true);
        response.getWriter().println("<h1>Hello World</h1>");
        throw new RuntimeException("testing");

    }

    public static void main(String[] args) throws Exception
    {
        Server server = new Server(8080);
        server.setHandler(new HelloWorld());
        server.start();
        server.join();

    }
}

德里克

0 个答案:

没有答案