Servlet [dispatcherServlet]的Servlet.service()在path []的上下文中引发了异常

时间:2018-03-15 11:49:59

标签: java spring tomcat web

我有一个弹出启动应用程序,抛出以下内容:

  

2018年1月14日01:02:56.863 ERROR 372 --- [IO-8080-EXEC-14] oaccC [[[/] [DispatcherServlet的]:。Servlet.service()进行的servlet [DispatcherServlet的]在path []的上下文中抛出异常[请求处理失败;嵌套异常是带有根本原因的java.lang.NullPointerException]

应用程序运行并按预期运行。我已经在日志中看到了几次错误,但似乎无法理解为什么/它在哪里发生。

日志中没有关于错误的其他信息。

我已经查看了日志,看看错误发生之前和之后发生了什么,一切都很好。

我还将日志级别转为ALL,仍然是无用的错误消息。

任何想法我为什么会收到此错误以及如何让我的应用程序抛出更多有用的错误。

错误讯息中的突出显示是with path [] threw exception。我不确定[]是什么。

2 个答案:

答案 0 :(得分:0)

  

任何想法我为什么会收到此错误以及如何让我的应用程序抛出更多有用的错误。

根本原因是在NullPointerException的调用堆栈中的某个点抛出DispatcherServlet(NPE)。

不幸的是,您没有在日志中获得NPE的完整堆栈跟踪。你有没有检查堆栈跟踪的标准输出?通常情况下,当涉及吞咽堆栈跟踪时,Spring Boot是非常保守的配置。含义:应该有一个可以看到完整堆栈跟踪的点。我的猜测:工作目录中的日志文件或应用程序的标准输出(例如终端屏幕)。

  

错误消息的突出之处在于路径[]引发了异常。我不确定[]是什么。

这是请求的路径部分。 []表示路径为空字符串。 Spring使用[] - 符号来表示存在空字符串。通常它看起来像[/users/34]。 我的猜测是:你调用类似http://localhost:8080的东西,所以不存在尾部斜杠,这会将url的路径部分呈现为空字符串。

答案 1 :(得分:-2)

我遇到了同样的问题,并且能够通过使用另一个JDK来解决。

我通过运行从openjdk 8切换到openjdk 9(均为ubuntu 18.04)

sudo apt install default-jdk

(检查它是否使用java -version更新了符号链接