0
當我的一個端點被訪問時,我會看到隨機的NullPointerException。在DispatcherServlet中丟失堆棧跟蹤的隨機NullPointerExceptions
我知道的NPE是什麼,但是請原諒,我有很多問題在這裏:
- 問題,在每10000個電話也許曾經發生
- 如果我重播相同的請求,第二次它工作好
- 它看起來好像它沒有得到我的控制器中的代碼(沒有語句記錄)
- 和,最討厭...我沒有一個堆棧跟蹤來幫助我找出問題。
這是它被記錄:
[p-nio-80-exec-4] o.a.c.c.C.[.[.[/].[dispatcherServlet] : Servlet.service() for servlet [dispatcherServlet] in context with path [] threw exception [Request processing failed; nested exception is java.lang.NullPointerException] with root cause
java.lang.NullPointerException: null
Annnnnd,僅此而已,僅此而已......
控制器的代碼相當straithforward,它看起來像這樣:
@RepositoryRestController
@ResponseBody
public class AnimalImportEndpoint {
@Inject
private animalImportService;
@RequestMapping(value = "/animals/import", method = RequestMethod.POST)
public AnimalImportResult import(@Valid @RequestBody Animal animal) {
return animalImportService.import(animal);
}
@ResponseStatus(value = HttpStatus.BAD_REQUEST, reason = "Illegal arguments")
@ExceptionHandler(IllegalArgumentException.class)
public void illegalArguments() {
}
}
由於Spring Data Rest還暴露了該類,因此使用@RepositoryRestController
而不是@RestController
註釋s /animals
。
任何關於如何解決這個問題的指針或建議?
編輯:其他有趣的事實,我用sleuth追蹤請求。當我得到這個NullPointerException異常,我可以看到,有我在日誌中沒有spanId/traceId ...
感謝偉大的想法,沒知道這一點。 –