diff --git a/apm-collector/apm-collector-component/server-component/src/main/java/org/apache/skywalking/apm/collector/server/jetty/JettyHandler.java b/apm-collector/apm-collector-component/server-component/src/main/java/org/apache/skywalking/apm/collector/server/jetty/JettyHandler.java index 0c557b026..15520fc42 100644 --- a/apm-collector/apm-collector-component/server-component/src/main/java/org/apache/skywalking/apm/collector/server/jetty/JettyHandler.java +++ b/apm-collector/apm-collector-component/server-component/src/main/java/org/apache/skywalking/apm/collector/server/jetty/JettyHandler.java @@ -32,31 +32,43 @@ import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.apache.skywalking.apm.collector.core.util.ObjectUtils; import org.apache.skywalking.apm.collector.server.ServerHandler; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; /** * @author peng-yongsheng */ public abstract class JettyHandler extends HttpServlet implements ServerHandler { + private final Logger logger = LoggerFactory.getLogger(JettyHandler.class); + public abstract String pathSpec(); @Override - protected final void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { + protected final void doGet(HttpServletRequest req, HttpServletResponse resp) { try { reply(resp, doGet(req)); - } catch (ArgumentsParseException e) { - replyError(resp, e.getMessage(), HttpServletResponse.SC_BAD_REQUEST); + } catch (ArgumentsParseException | IOException e) { + try { + replyError(resp, e.getMessage(), HttpServletResponse.SC_BAD_REQUEST); + } catch (IOException replyException) { + logger.error(replyException.getMessage(), e); + } } } protected abstract JsonElement doGet(HttpServletRequest req) throws ArgumentsParseException; @Override - protected final void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { + protected final void doPost(HttpServletRequest req, HttpServletResponse resp) { try { reply(resp, doPost(req)); - } catch (ArgumentsParseException e) { - replyError(resp, e.getMessage(), HttpServletResponse.SC_BAD_REQUEST); + } catch (ArgumentsParseException | IOException e) { + try { + replyError(resp, e.getMessage(), HttpServletResponse.SC_BAD_REQUEST); + } catch (IOException replyException) { + logger.error(replyException.getMessage(), e); + } } }