如何在IntelliJ IDEA和Eclipse上远程调试SAP Commerce(预制版)?

295 阅读3分钟

背景

根据我的经验,有时错误只发生在某些环境中,而我无法在本地环境中重现这个问题,唯一的办法就是对应用服务器进行远程调试,看看哪里出了问题。

目标

本博客将指导您如何对SAP商务实例进行远程调试。我将介绍如何在IntelliJ IDEA和eclipse中进行远程调试。

远程调试可以让你检查运行中的代码,代码中的变量值是什么,以及确定某些方法的结果是什么。

先决条件

  1. SAP商务的基本知识
  2. 应用程序调试的基本知识
  3. 可以直接访问8000端口的应用服务器(如果你不想使用8000端口,也可以使用其他端口),请向你的信息团队咨询服务器访问问题。
  4. 拥有对服务器的SSH访问权,或在调试模式下启动服务器的管道。

第一步

这些步骤将涵盖如何设置应用服务器,使其能够被远程调试。

  1. 在服务器的local.properties中添加以下属性。

    tomcat.debugjavaoptions=-Djava.locale.providers=COMPAT,CLDR -Xdebug -Xnoagent -Xrunjdwp:transport=dt_socket,server=y,address=*:8000,suspend=n​
    

    要添加配置,你可以通过SSH访问服务器并手动添加,或者在添加上述配置后重新部署。你需要在添加上述配置后进行构建**(ant all**)。
    如果你想改变调试端口,你可以把8000改为任何你喜欢的端口。

  2. SSH到应用服务器,通过执行**./hybrisserver.sh debughybrisserver.bat debug** 以调试模式启动服务器。

  3. 确保你拥有与服务器相同的代码,在你的本地环境中进行构建**(ant all**)。

  4. 如果你的环境是在集群环境下运行的,我建议停止除你正在调试的那个节点之外的所有其他节点。如果不可能停止所有其他节点,你可以将我们使用的应用服务器与负载均衡器隔离,这样就不会有请求进入该服务器,然后为了重现这个问题,你可以使用应用服务器的IP地址直接访问storefront。

如何在IntelliJ IDEA上进行调试?

这些步骤将涵盖如何将IntelliJ IDEA连接到远程服务器并进行调试

  1. 编辑远程调试的配置,如下图所示。
  2. 在调试配置窗口,将Host改为服务器的IP地址,如果你在上面第一步中改变了端口号,则将端口改为Host。
  3. 开始调试,添加一些断点,就像在本地机器上调试一样。

如何在Eclipse上进行调试?

这些步骤将涵盖如何将Eclipse连接到远程服务器并进行调试

  1. 在eclipse上,点击菜单Run->Debug configurations...
  2. 双击远程Java应用程序来创建新的调试配置
  3. 随便取个名字,这里我取的是hybris。在连接属性中,将服务器的 IP 地址放到主机上
  4. 在项目部分,点击浏览,并选择平台
  5. 在源标签上,点击添加 -> 选择文件系统目录 -> 选择你的 bin 文件夹
  6. 回到调试配置窗口,点击应用,然后点击调试,开始调试。
  7. 开始调试,添加一些断点,就像调试你的本地机器一样。

结论

远程调试应用服务器是非常容易的,步骤与调试本地环境几乎相同,唯一的区别是我们需要直接访问应用服务器,并且能够在调试模式下启动它,除此之外,步骤是一样的。