在负载测试下来自dispatcherServlet的Spring启动应用程序错误

时间:2018-01-21 08:14:53

标签: tomcat spring-boot nullpointerexception jmeter dispatcher

声明: 这个问题不像NullPointerException或如何处理NPE那么简单。它涉及多线程编程。我知道如何捕获异常,问题是我找不到这个异常的来源甚至无法弄清楚问题是性能瓶颈还是逻辑错误。所以我来这里寻求你的帮助。最后,我发现了这个错误并在我自己的回答中解决了它。

我开发了一个REST API,用于在Spring启动应用程序中上传一个块并通过功能测试。以下是版本信息。

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

这是否意味着服务器已达到瓶颈或逻辑中出现其他错误?我该如何调试和跟踪这个问题?

感谢。

1 个答案:

答案 0 :(得分:0)

我明白了。我在服务器的日志文件中找到了完整的异常堆栈跟踪。控制台错过了完整的堆栈信息。并且它在开头时抛出了完整的信息,然后只打印了一个句子,就像我在我的问题中发布的那样,这导致我很难调试这个问题。非常感谢@JB Nizet,你是​​对的,我有一个错误。