Kettle远程调试

1.编译pentaho-kettle-9.2.0.3-R

cd到源代码目录使用mvn命令编译程序

mvn clean install -Dmaven.test.skip=true

编译完成后在源代码目录下会创建

源代码目录\assemblies\client\target\pdi-ce-9.2.0.3-477.zip

2.解压pdi-ce-9.2.0.3-477.zip文件

将pdi-ce-9.2.0.3-477.zip解压到某个目录如c:\data-integration

3.编写一个MySpoon.bat文件

(1)编写MySpoon.bat文件

复制c:\data-integration下的Spoon.bat命名为MySpoon.bat文件.添加如下代码

set DEBUG_OPT=-Xdebug -Xnoagent -Djava.compiler=NONE -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=9999

修改下面的语句

%SPOON_START_OPTION%  %DEBUG_OPT% %OPT% -jar launcher\launcher.jar -lib ..\%LIBSPATH% %_cmdline%

为此语句

%SPOON_START_OPTION% "%_PENTAHO_JAVA%" %DEBUG_OPT% %OPT% -jar launcher\launcher.jar -lib ..\%LIBSPATH% %_cmdline%

(2)参数解析

在服务器上,应用在启动的时候需要添加以下参数:
-Xdebug -Xrunjdwp:transport=dt_socket,address=2019,server=y,suspend=n
解释:
[1]-Xdebug:启用调试特性。
[2]-Xrunjdwp:在目标 VM 中加载 JDWP 实现。它通过传输和 JDWP 协议与独立的调试器应用程序通信,以下是子选项:
transport:这里通常使用套接字传输。但是在 Windows 平台上也可以使用共享内存传输。
server:如果值为 y,目标应用程序监听将要连接的调试器应用程序。否则,它将连接到特定地址上的调试器应用程序。
address:这是连接的传输地址。如果服务器为 n,将尝试连接到该地址上的调试器应用程序。否则,将在这个端口监听连接。
suspend:如果值为 y,目标 VM 将暂停,直到调试器应用程序进行连接。

注意:suspend一般设为y,这样可以从main开始调试,如果设为n,Spoon界面会加载了,不能从main函数调试

4.启动MySpoon.bat

5.Eclipse创建远程调试

(1)菜单【Run】|【Debug Configurations】打开Debug Configurations对话框

(2)左边的树形节点【Reomote Java Application】右键【New Configuration】

​ Name:remoteDebugSpoon (这里随便填)

​ [1]【Connect】 Tab页

​ Project:随便选一个项目(这里选择kettle-engine)

​ Connection Type:默认选择Standar(Socket Attach)

​ Host:localhost

​ Port:端口号

​ 说明:(1)因为是本地调试所以localhost,如果调试的程序在其他机器,就写对应机器的ip

​ (2)Port:选择的不要被其他应该用程序占用,可以用netstat查看端口号是否被占用

​ Port:选择与MySpoon.bat中address端口号保持一致

​ [2] 【Source】Tab页

​ 这里为了关联你需要的调试的源码,为了所有的项目源码能调试到,我们这里如下操作

​ 点击【Add】按钮,弹出【Add Source】对话框 ,选中【Java Project】后点【OK】,弹出【Project Selection】对话框,点击【Select All】按钮点击【OK】,这样项目中的源码就可以调试时关联到了。

注意:保证已编译的代码要与源代码要同步,如果不一样可能调试会有问题

6.在Eclipse中开启远程调试

​ 菜单【Run】|【Debug Configurations】打开Debug Configurations对话框,点击左边的树形节点【Reomote Java Application】节点下【remoteDebugSpoon】节点面板,点击【Debug】就可以调试了。

7.参考

1.配置

(1).kettle配置远程调试.
(2)Eclipse 远程调试(Remote Debug)
(3)使用Eclipse进行远程调试
(4)Java关于远程调试程序教程

2.关联不到源代码

1.Eclipse调试时出现source not found的问题

posted @ 2022-03-23 10:18  焦涛  阅读(480)  评论(0)    收藏  举报