Obtener seguimiento de la pila de excepción a través de la plantilla resorte resto

Number945:

Tengo 2 servicios - Service 1y Service 2. Service 1llama a algunos Service 2API a través de la primavera Plantilla de descanso. Ahora alguna excepción ocurrió en Service 2. Necesito toda la traza de la pila de la misma en Service 1. Cómo conseguirlo ?

Service 1  ---calls--> Service 2

¿El seguimiento de la pila incluso van pasando a Service 1la primavera?

Se puede decir que estoy llamando de esta manera:

HttpHeaders headers = new HttpHeaders();
headers.setAccept(Arrays.asList(MediaType.APPLICATION_JSON));
HttpEntity<String> entity = new HttpEntity<String>(headers);
return restTemplate.exchange("http://localhost:8080/products", HttpMethod.GET, entity, String.class).getBody();
Vivek:

Necesito toda la traza de la pila de la misma en servicio 1. ¿Cómo conseguirlo?

Por lo que hay maneras de conseguir que, en esencia, lo que tiene que poner en práctica. Usted puede conseguir su mensaje de excepción / trace relevante en JSON responsepartir Service 2. Es decir, cuando hay alguna exceptional Service 2final, entonces, podemos configurar la respuesta para enviar información de excepción relevante.

En este puesto hay 3 respuestas que explican diferentes formas de lograr, también esta uno. Ahora en:

¿El seguimiento de la pila incluso van pasando al servicio 1 para la primavera?

Normalmente, cualquier no controlada / tiempo de ejecución exceptionarrojado al procesar una web-requestcausa que el servidor para devolver una HTTP 500respuesta.

Así que la respuesta es la primavera no transfiere el seguimiento de la pila deService 1 vez responde con el error HTTP 500y la probable mayor parte de su mensaje exception.

Sin embargo, cualquier excepción que se escribe a sí mismo puede ser anotado con la @ResponseStatusanotación (que es compatible con todos los códigos de estado HTTP definidos por la HTTPespecificación).

Cuando un annotated exceptionse lanza desde un método de controlador, y no se manejan en otra parte, que hará que automáticamente el apropiado HTTP responsepara ser devuelto con el estado de código especificado y con el mensaje / huella escrita. Por ejemplo,

@ResponseStatus(value=HttpStatus.NOT_FOUND, reason="No such Account")  // 404
public class AddressNotFoundException extends RuntimeException {
    // ...
}

Y aquí es un método de control de usarlo:

@RequestMapping(value="/account/{id}", method=GET)
public String showOrder(@PathVariable("id") long id, Model model) {
    Account account = accountServices.findAccountById(id);

    if (account == null) throw new AddressNotFoundException(id);
    model.addAttribute(account);
    return "accountDetail";
}

Un familiarizado HTTP 404respuesta será devuelto si la URL controlarlo mediante el método incluye un identificador de cuenta desconocida.

Espero que esto ayude.

Supongo que te gusta

Origin http://43.154.161.224:23101/article/api/json?id=172413&siteId=1
Recomendado
Clasificación