2013-01-25 44 views
2

我已经尝试了多次调试托管容器环境中的测试。在IntelliJ托管容器中使用Arquillian进行调试

我收到错误,如JDWP传输错误,套接字未能初始化。意思是我不能用属性标签初始化arquillian。

我arquillian.xml文件看起来像这样:

<arquillian xmlns="http://jboss.org/schema/arquillian" 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
xsi:schemaLocation=" 
http://jboss.org/schema/arquillian 
http://jboss.org/schema/arquillian/arquillian_1_0.xsd"> 
<engine> 
<property name="deploymentExportPath">target/arq.deployments</property> 
</engine> 

<container qualifier="jboss" default="true"> 
<protocol type="jmx-as7"> 
<property name="executionType">MANAGED</property> 
</protocol> 
<configuration> 
<property name="javaVmArguments">-Xrunjdwp:transport=dt_socket,address=55407,server=y,suspend=y -Xmx512m -XX:MaxPermSize=128m</property> 
</configuration> 
</container> 
</arquillian> 

我这么想吗?

Screenshot

回答

5

有3个JVM在这种情况下运行。所以这是一个特殊的调试案例。

  1. 1st JVM->由Arquillian/Junit开始执行测试。
  2. 第二个JVM->由Arquillian启动运行托管的Jboss。
  3. 第3个JVM->这是一个远程调试配置必须移植到JVM 第2号为了调试第2个JVM。看看这个blog

所以这样的想法,运行测试(第2 JVM将暂停,直到JVM连接到它),然后运行一个新的远程配置,只要这个开始,过去的JVM将运行。

这有点混乱,但工程。

请注意,如果在简单调试模式下只有2个JVM,那么您将调试arquillian/junit JVM,这不是您感兴趣的那个。

enter image description here

相关问题