wso2 esb_利用WSO2 ESB的开源

wso2 esb

wso2 esb_利用WSO2 ESB的开源 使用WSO2堆栈 (或任何其他开放源代码Java框架)实现服务时,您迟早会遇到框架行为未达到您预期的行为的情况。 或者,您只想验证产品的工作方式。 我最近有几次这样的经历,并且绕过了它来设置远程调试会话,因此我可以逐步进行代码以查看发生了什么。 当然,这只有在您拥有可用源代码的情况下才有意义(万岁开源:-)。 在本文中,将WSO2 ESB (v 4.8.1)与IntelliJ IDEA结合使用的示例。

第一步是获取WSO2 ESB的源代码, 此处描述了这样做的方法。 当我们下载了源代码后,我们还可以下载二进制文件以使ESB在我们的计算机上本地运行(顺便说一句,我也尝试从源代码构建WSO2堆栈,但是经过数小时的尝试,我从未成功完成它) )。 当同时具有源代码和二进制文件时,我们可以开始调试会话。 首先通过转到以下目录'$ ESB_HOME / bin'启动WSO2 ESB,然后执行命令'./wso2server.sh -debug 5005',如下所示:

wso2 esb_利用WSO2 ESB的开源

如您所见,启动ESB的过程被暂停,直到在端口5005上启动调试会话为止。 现在转到IntelliJ IDEA(或者我认为其他IDE也支持此功能)并创建一个新的运行配置,例如:

wso2 esb_利用WSO2 ESB的开源

在配置中,我仅更改配置的名称。 如您所见,在我的情况下,默认服务器和端口是正确的:

wso2 esb_利用WSO2 ESB的开源

保存配置后,我们可以通过单击菜单栏中的“错误”来启动调试会话:

wso2 esb_利用WSO2 ESB的开源

当会话开始时,我们在IntelliJ控制台中看到以下行:
Connected to the target VM, address: 'localhost:5005', transport: 'socket' ,我们看到WSO2 ESB已继续启动。

现在最困难的部分是将断点放在源代码中的正确位置,因为WSO2堆栈中有很多断点:-)。 最好是如果您有一个堆栈跟踪将您指向某个类。 内置断点是设置断点的另一个常见位置。 可以在“ $ SRC_HOME / dependencies / synapse / 2.1.2-wso2v5 / modules / core”中找到此组件的pom.xml 因此,将这个pom.xml导入您的IntelliJ中:

wso2 esb_利用WSO2 ESB的开源

浏览到类“ org.apache.synapse.mediators.builtin.LogMediator.java”,并在“ mediate”方法处设置一个断点:

wso2 esb_利用WSO2 ESB的开源

现在确保ESB调用了中介程序,并且您将看到IntelliJ将在代码到达断点时立即获得焦点:

wso2 esb_利用WSO2 ESB的开源 现在,从这一点开始,您可以逐步执行代码,并查看为什么事情以这种方式发生。

希望这能对您有所帮助,就像它在我在文档Google中找不到任何帮助的几次帮助。

翻译自: https://www.javacodegeeks.com/2015/02/making-use-open-sources-wso2-esb.html

wso2 esb