Search in sources :

Example 1 with HeaderValueException

use of org.glassfish.jersey.message.internal.HeaderValueException in project jersey by jersey.

the class WebComponent method serviceImpl.

/**
     * Dispatch client requests to a resource class.
     *
     * @param baseUri         the base URI of the request.
     * @param requestUri      the URI of the request.
     * @param servletRequest  the {@link javax.servlet.http.HttpServletRequest} object that
     *                        contains the request the client made to
     *                        the Web component.
     * @param servletResponse the {@link javax.servlet.http.HttpServletResponse} object that
     *                        contains the response the Web component returns
     *                        to the client.
     * @return returns {@link ResponseWriter}, Servlet's {@link org.glassfish.jersey.server.spi.ContainerResponseWriter}
     *         implementation, into which processed request response was written to.
     * @throws java.io.IOException            if an input or output error occurs
     *                                        while the Web component is handling the
     *                                        HTTP request.
     * @throws javax.servlet.ServletException if the HTTP request cannot be handled.
     */
/* package */
ResponseWriter serviceImpl(final URI baseUri, final URI requestUri, final HttpServletRequest servletRequest, final HttpServletResponse servletResponse) throws ServletException, IOException {
    final ResponseWriter responseWriter = new ResponseWriter(forwardOn404, configSetStatusOverSendError, servletResponse, asyncExtensionDelegate.createDelegate(servletRequest, servletResponse), backgroundTaskScheduler);
    try {
        final ContainerRequest requestContext = new ContainerRequest(baseUri, requestUri, servletRequest.getMethod(), getSecurityContext(servletRequest), new ServletPropertiesDelegate(servletRequest));
        initContainerRequest(requestContext, servletRequest, servletResponse, responseWriter);
        appHandler.handle(requestContext);
    } catch (final HeaderValueException hve) {
        if (LOGGER.isLoggable(Level.FINE)) {
            LOGGER.log(Level.FINE, LocalizationMessages.HEADER_VALUE_READ_FAILED(), hve);
        }
        final Response.Status status = Response.Status.BAD_REQUEST;
        if (configSetStatusOverSendError) {
            servletResponse.reset();
            //noinspection deprecation
            servletResponse.setStatus(status.getStatusCode(), status.getReasonPhrase());
        } else {
            servletResponse.sendError(status.getStatusCode(), status.getReasonPhrase());
        }
    } catch (final Exception e) {
        throw new ServletException(e);
    }
    return responseWriter;
}
Also used : ServletException(javax.servlet.ServletException) HeaderValueException(org.glassfish.jersey.message.internal.HeaderValueException) ResponseWriter(org.glassfish.jersey.servlet.internal.ResponseWriter) ContainerRequest(org.glassfish.jersey.server.ContainerRequest) ServletException(javax.servlet.ServletException) HeaderValueException(org.glassfish.jersey.message.internal.HeaderValueException) PrivilegedActionException(java.security.PrivilegedActionException) IOException(java.io.IOException)

Aggregations

IOException (java.io.IOException)1 PrivilegedActionException (java.security.PrivilegedActionException)1 ServletException (javax.servlet.ServletException)1 HeaderValueException (org.glassfish.jersey.message.internal.HeaderValueException)1 ContainerRequest (org.glassfish.jersey.server.ContainerRequest)1 ResponseWriter (org.glassfish.jersey.servlet.internal.ResponseWriter)1