背景
根据我的经验,有时错误只发生在某些环境中,而我无法在本地环境中重现这个问题,唯一的办法就是对应用服务器进行远程调试,看看哪里出了问题。
目标
本博客将指导您如何对SAP商务实例进行远程调试。我将介绍如何在IntelliJ IDEA和eclipse中进行远程调试。
远程调试可以让你检查运行中的代码,代码中的变量值是什么,以及确定某些方法的结果是什么。
先决条件
- SAP商务的基本知识
- 应用程序调试的基本知识
- 可以直接访问8000端口的应用服务器(如果你不想使用8000端口,也可以使用其他端口),请向你的信息团队咨询服务器访问问题。
- 拥有对服务器的SSH访问权,或在调试模式下启动服务器的管道。
第一步
这些步骤将涵盖如何设置应用服务器,使其能够被远程调试。
-
在服务器的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改为任何你喜欢的端口。 -
SSH到应用服务器,通过执行**./hybrisserver.sh debug或hybrisserver.bat debug** 以调试模式启动服务器。
-
确保你拥有与服务器相同的代码,在你的本地环境中进行构建**(ant all**)。
-
如果你的环境是在集群环境下运行的,我建议停止除你正在调试的那个节点之外的所有其他节点。如果不可能停止所有其他节点,你可以将我们使用的应用服务器与负载均衡器隔离,这样就不会有请求进入该服务器,然后为了重现这个问题,你可以使用应用服务器的IP地址直接访问storefront。
如何在IntelliJ IDEA上进行调试?
这些步骤将涵盖如何将IntelliJ IDEA连接到远程服务器并进行调试
- 编辑远程调试的配置,如下图所示。

- 在调试配置窗口,将Host改为服务器的IP地址,如果你在上面第一步中改变了端口号,则将端口改为Host。

- 开始调试,添加一些断点,就像在本地机器上调试一样。
如何在Eclipse上进行调试?
这些步骤将涵盖如何将Eclipse连接到远程服务器并进行调试
- 在eclipse上,点击菜单Run->Debug configurations...
- 双击远程Java应用程序来创建新的调试配置
- 随便取个名字,这里我取的是hybris。在连接属性中,将服务器的 IP 地址放到主机上

- 在项目部分,点击浏览,并选择平台

- 在源标签上,点击添加 -> 选择文件系统目录 -> 选择你的 bin 文件夹

- 回到调试配置窗口,点击应用,然后点击调试,开始调试。
- 开始调试,添加一些断点,就像调试你的本地机器一样。
结论
远程调试应用服务器是非常容易的,步骤与调试本地环境几乎相同,唯一的区别是我们需要直接访问应用服务器,并且能够在调试模式下启动它,除此之外,步骤是一样的。