Over a million developers have joined DZone.

Debugging Using Wildfly and Arquillian

· Java Zone

Check out this 8-step guide to see how you can increase your productivity by skipping slow application redeploys and by implementing application profiling, as you code! Brought to you in partnership with ZeroTurnaround.

This should be most useful for those starting out with Arquillian! I spent quite some time before finding out the solution.



The arquillian.xmlshould include the following contents:

 <engine>  
     <property name="deploymentExportPath">target/</property>  
   </engine>  
   <container qualifier="jbossas-managed-wildfly-8" default="true">  
        <protocol type="jmx-as7">  
       <property name="executionType">REMOTE</property>  
     </protocol>  
     <configuration>  
          <property name="allowConnectingToRunningServer">true</property>  
       <property name="jbossHome">C:\Program Files (x86)\PSL\RCA\ApplicationServer</property>  
       <property name="modulePath">C:\Program Files (x86)\PSL\RCA\ApplicationServer\modules</property>  
       <property name="javaVmArguments">-Xrunjdwp=transport=dt_socket,address=8000,server=y,suspend=n -Djava.util.logging.manager=org.jboss.logmanager.LogManager</property>  
     </configuration>  
   </container>  



Include the following profile in your Maven pom.xml:

  <profile>  
   <id>arquillian-wildfly-managed</id>  
   <activation>  
        <activeByDefault>true</activeByDefault>  
        </activation>    
   <dependencies>  
      <dependency>  
        <groupId>org.jboss.spec</groupId>  
        <artifactId>jboss-javaee-6.0</artifactId>  
        <version>3.0.1.Final</version>  
        <type>pom</type>  
        <scope>test</scope>  
      </dependency>  
      <!-- Required by jboss-javaee-6.0:3.0.2.Final (https://issues.jboss.org/browse/JBBUILD-708) -->  
      <dependency>  
        <groupId>xalan</groupId>  
        <artifactId>xalan</artifactId>  
        <version>2.7.1</version>  
        <scope>test</scope>  
      </dependency>  
      <dependency>  
        <groupId>org.wildfly</groupId>  
        <artifactId>wildfly-arquillian-container-managed</artifactId>  
        <version>8.1.0.Final</version>  
        <scope>test</scope>  
      </dependency>  
      </dependencies>  
   </profile>  

When we use Arquillian, there are three VM's that are involved:

1. Arquillian (Source) > Remote/Managed Server

Start the Remote/Managed Server with the following line added to standalone.conf.bat

 set "JAVA_OPTS=%JAVA_OPTS% -agentlib:jdwp=transport=dt_socket,address=8000,server=y,suspend=n"  

In Eclipse, Right Click on your project and Click on "Debug" and under "Connect" - Select your "Host" and "Port". Click on "Apply" and "Debug". This will connect the Debugger to the Remote VM inside Wildfly. 

2. Test > Remote/Managed Server

Now, Right Click on your Arquillian Test and Click on "Debug As.." or "Debug Configurations". Then select either "TestNG" or "JUnit".

 

Now, you will be able to hit the breakpoint. Happy Debugging!


The Java Zone is brought to you in partnership with ZeroTurnaround. Check out this 8-step guide to see how you can increase your productivity by skipping slow application redeploys and by implementing application profiling, as you code!

Topics:
devops ,enterprise-integration ,maven

Published at DZone with permission of Sumith Puri, DZone MVB. See the original article here.

Opinions expressed by DZone contributors are their own.

The best of DZone straight to your inbox.

SEE AN EXAMPLE
Please provide a valid email address.

Thanks for subscribing!

Awesome! Check your inbox to verify your email so you can start receiving the latest in tech news and resources.
Subscribe

{{ parent.title || parent.header.title}}

{{ parent.tldr }}

{{ parent.urlSource.name }}