将IntelliJ IDEA调试器附加到Arquillian启动的Wildfly Docker映像

时间:2016-09-23 13:12:01

标签: intellij-idea remote-debugging jboss-arquillian wildfly-10

我尝试使用http://arquillian.org/arquillian-cube扩展程序创建Arquillian单元测试,您可以在服务器端设置断点。

我已经创建了一个成功执行简单测试的项目(所有细节都在这里):
https://github.com/scetix/arquillian-cube-wildfly-quickstart

测试开始时,有没有办法自动将IntelliJ IDEA调试器连接到在Docker容器中运行的Wildfly?

1 个答案:

答案 0 :(得分:1)

自动,我不这么认为。对于Docker示例,从IDE的角度来看,它被视为远程服务器。

所以你需要做的是首先启动Wildfly并启用调试(http://tools.jboss.org/blog/2015-03-17-debugging-an-externally-launched-wildfly.html)并正确公开调试器端口(https://github.com/scetix/arquillian-cube-wildfly-quickstart/blob/master/src/test/resources/Dockerfile#L12)。将这些行放入Dockerfile

# Expose JBoss/Wildfly management port
EXPOSE 9990
# Expose JBoss/Wildfly debug port
EXPOSE 8787

您还需要为Docker Compose(https://github.com/scetix/arquillian-cube-wildfly-quickstart/blob/master/src/test/resources/docker-compose.yml#L5)设置端口绑定。将调试器的端口8787添加到YAML文件中(第一个数字 - 这里是58787 - 可能是您喜欢的任何数字):

ports:
  - 58787:8787/tcp

最后启动IntelliJ作为远程调试器,设置Docker主机的IP(本机Docker为localhost,Docker Machine为Docker Machine IP)。

您可以使用IntelliJ查看如何执行此操作:http://blog.trifork.com/2014/07/14/how-to-remotely-debug-application-running-on-tomcat-from-within-intellij-idea/。这个例子是针对Tomcat的;请改为指定JBoss。