如何找到哪个类正在打印错误?

时间:2016-08-01 16:07:36

标签: java vert.x

我有一个使用Vertx 2的Java程序,当我运行它时,我收到一条消息:

% vertx run -cluster com.abc.prep.manager.PrepStartup -cp ./build/libs/Operational-all-1.0.jar -conf safe.conf
Starting clustering... 
No cluster-host specified so using address 172.17.0.1 
[Fatal Error] :6:3: The element type "hr" must be terminated by the matching end-tag "</hr>".
Prep Starting up!
Succeeded in deploying verticle 

我无法弄清楚那些&#39; [致命错误]&#39;消息来自。如果有人知道vertx正在做什么(因为我认为它来自那里),那就太棒了。

但我真正的问题是:我如何找出谁在打印?什么类在哪个罐子里?我似乎无法在System.out或System.err中设置断点来捕获它(我使用的是Intellij)。我可以覆盖(全部)输出以便打印堆栈跟踪吗?

1 个答案:

答案 0 :(得分:1)

你如何找到谁在打印?我不能说Vertx 2的具体细节,但我必须追查大量的神秘错误。这是我的一般模式,尽可能适用于你的:

  1. 了解错误是什么。谷歌错误消息中的静态(对于任何人都是相同的)元素。在这里,这可能是“必须由匹配的结束标记终止”。在查询中添加“vertx”给了我一些链接,但我没有看到任何即时答案。我确实发现它可能是一个XMLStreamException。你可以在那上断点。
  2. 假设不起作用,请按文本搜索代码库,查找相同的静态文本。有了Google调查的知识,您应该能够将任何结果缩小到可管理的数字进行检查。
  3. 如果您的搜索什么也找不到,请确保您的模块中包含可以获取源文件的所有内容的源文件。然后重试第2步。
  4. 一旦找到引发错误的代码,您就应该能够设置断点。