声明: 这个问题不像 NullPointerException 或如何处理 NPE 那么简单。它是关于多线程编程的。我确实知道如何捕获异常,问题是我无法定位此异常的来源,甚至无法弄清楚问题是性能瓶颈还是逻辑错误。所以我来这里寻求你的帮助。最后,我找到了错误并在我自己的答案中解决了它。
我开发了一个用于在 Spring boot 应用程序中上传 block 的 REST API,并通过了功能测试。以下是版本信息。
Spring Boot 1.5.8 with Embedded Tomcat
现在我想用 JMeter 评估负载测试下的性能。我设计了测试计划并成功地在轻负载下对其进行了验证。这是我关于线程属性的测试计划,
Number of Threads (users): 3
Ramp-Up Period (in seconds): 1
Loop Count: 3
但是当负载增加到10个线程甚至更多时,测试报告显示一些500类型的错误。并且服务器打印了一些错误
2018-01-20 20:34:23.744 ERROR 57809 --- [o-8083-exec-346] o.a.c.c.C.[.[.[/].[dispatcherServlet] : Servlet.service() for servlet [dispatcherServlet] i
n context with path [] threw exception [Request processing failed; nested exception is java.lang.NullPointerException] with root cause
java.lang.NullPointerException: null
这是否意味着服务器已经达到瓶颈或其他逻辑错误?以及如何调试和跟踪此问题?
谢谢。
最佳答案
我明白了。我在服务器的日志文件中找到了完整的异常堆栈跟踪。控制台错过了完整的堆栈信息。它在一开始就抛出了完整的信息,然后就像我在问题中发布的那样只打印了一个句子,这让我很难调试这个问题。无论如何,谢谢@JB Nizet,你是对的,我在那里有一个错误。
关于tomcat - 负载测试下 dispatcherServlet 的 Spring Boot 应用程序错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48364906/