J2EE Java服务器端错误调试访谈

J2EE Java服务器端错误调试访谈,java,debugging,jakarta-ee,Java,Debugging,Jakarta Ee,在最近的一次工作面试中,我被问到一个J2EE调试问题。问题如下: “您从服务器获得的数据与预期的数据不一样。如何调试?” 我应该怎样回答这个问题才能让面试官高兴 请建议 在我头上,通常你会 检查请求并将其与API进行比较-请求是否正确完成 检查服务器上的日志是否存在任何问题 确认服务器应用程序的版本与预期版本匹配 检查数据库数据状态 如果else失败,请尝试在本地或较低的环境中重现问题,或使用调试器逐步执行服务器应用程序执行路径。增加日志级别或连接到调试接口也可能相关 当您必须调试服务器上的代

在最近的一次工作面试中,我被问到一个J2EE调试问题。问题如下:

“您从服务器获得的数据与预期的数据不一样。如何调试?”

我应该怎样回答这个问题才能让面试官高兴


请建议

在我头上,通常你会

  • 检查请求并将其与API进行比较-请求是否正确完成
  • 检查服务器上的日志是否存在任何问题
  • 确认服务器应用程序的版本与预期版本匹配
  • 检查数据库数据状态
  • 如果else失败,请尝试在本地或较低的环境中重现问题,或使用调试器逐步执行服务器应用程序执行路径。增加日志级别或连接到调试接口也可能相关

当您必须调试服务器上的代码时,有一种常见的调试代码的方法。您可以看到服务器日志。现在,如果您找不到任何错误,那么必须查看API在每个步骤中返回的内容。如果您没有每个步骤的日志,请放入
log.debug(“一些有意义的文本”)并重新运行。如果有什么不寻常的事情,那么你必须检查具体的步骤。

这个问题太笼统了,为你打开了一条途径,让你用问题轰炸面试官,这可能是他希望你做的

通常当sh.点击风扇时,我想知道:用户是否收到任何数据?如果没有,应用程序日志、服务器日志和数据库日志就是我要查看的地方。有些应用程序使用位于应用程序运行磁盘上的应用程序日志,有些应用程序使用基于数据库的日志,有些应用程序使用默认日志,可以通过服务器上的管理控制台访问(例如Glassfish)

另一方面,如果用户收到不正确的数据,我开始通过应用程序跟踪数据是如何“生成”的,这通常意味着要通过几个db查询,这样我就可以尝试确定发生了什么。之后,我将预期结果与用户收到的结果进行比较,并根据差异判断出哪里出了问题


但是,在这种环境下,这个问题太笼统了,所以你要么让面试官指定问题,要么为他创建自己的场景。

你从服务器获得的数据与预期的数据不一样。如何调试它?你能详细解释一下吗?请解释一下这个问题。你当然应该向面试官要求更多的澄清,以得到最佳答案!从你的服务器上得到的数据和预期的一样,你应该从哪里得到数据,什么服务器等等?事实上,这就是他所要求的!!!看起来他想知道如何调试。。。我不知道他在期待什么!!作为第一种方法,我将在servlet方法中设置一个断点(或检查其他地方生成的数据),以跟踪作为HTTP响应发送的内容,并使用其工具检查浏览器中接收到的内容。最好的方法是使用像Eclipse这样的IDE,构建项目,然后启动服务器调试选项,并在相关端点中添加断点。在UI中执行必要的步骤以到达服务器中的端点(如果它是RESTAPI,则更容易使用Postman),并在服务器在断点处停止后在调试透视图中检查变量等