Отладка с помощью Arquillian в IntelliJ — управляемый контейнер

Я много раз пытался отладить тест в среде управляемого контейнера.

Я получаю сообщения об ошибках, таких как Ошибка транспорта JDWP, не удалось инициализировать сокет. Означает, что я не могу инициализировать arquillian с указанным ниже тегом property.

Мой файл 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>

Я что-то пропустил?

Снимок экрана


person jacktrades    schedule 25.01.2013    source источник


Ответы (1)


В этом случае работают 3 JVM. Итак, это особый случай отладки.

  1. 1-й JVM-> Запущен Arquillian/Junit для выполнения тестов.
  2. 2-й JVM-> Запущен Arquillian для запуска управляемого Jboss.
  3. 3-я JVM-> Это конфигурация удаленной отладки, которую необходимо перенести на JVM номер 2 для отладки 2-й JVM. Посетите этот блог.

Такова идея: запустить тест (2-я JVM будет приостановлена ​​до тех пор, пока к ней не будет подключена JVM), затем запустить новую удаленную настройку, как только это начнется, предыдущая JVM запустится.

Это немного запутанно, но работает.

Обратите внимание, что если у вас есть только 2 JVM в простом режиме отладки, вы будете отлаживать JVM arquillian/junit, а не тот, который вас интересует.

введите здесь описание изображения

person jacktrades    schedule 25.01.2013