Gradle+Cargo+JBoss 5.1 = java.lang.ClassNotFoundException: org.jnp.interfaces.NamingContextFactory

I am trying to deploy a war file on a remote JBoss 5.1.0.GA container, using a gradle build file and the Gradle Cargo plugin by Benjamin Muschko (https://github.com/bmuschko/gradle-cargo-plugin).

I am experiencing a java.lang.ClassNotFoundException: org.jnp.interfaces.NamingContextFactory when launching the cargoDeployRemote task on a very simple project. The post about Cargo deployment on a JBoss 5.1.0.GA using Maven plugin helped me setting up the dependencies. The missing class NamingContextFactory is also defined inside the jboss-as-varia dependency for example. Obviously, I must be missing something.

The project is only a folder with the following Gradle script, nothing more. I must add that I run the build script from inside a linux virtual machine, a virtualbox guest running ArchLinux, and I want to remotely deploy on a JBoss 5.1.0.GA server running on the host. I am able to access the JBoss Developer via the gateway address (10.0.2.2) from the guest, so I guess this is not the issue here.

I tried to provide the most simple gradle build file for showing this problem. Any clue on what should be done to make this work ? Any help appreciated.

Here’s my build.gradle file:

apply plugin: 'war'
apply plugin: 'com.bmuschko.cargo'

buildscript {

    repositories {
        mavenCentral()
    }

    dependencies {
        classpath 'com.bmuschko:gradle-cargo-plugin:2.1.1'
    }

}

repositories {

   mavenCentral()

   dependencies {
        providedCompile 'org.jboss.jbossas:jboss-as-jbossas-remoting:5.1.0.GA'
        providedCompile 'org.jboss.jbossas:jboss-as-client:5.1.0.GA'
        providedCompile 'org.jboss.jbossas:jboss-as-varia:5.1.0.GA'
        providedCompile 'org.jboss.integration:jboss-profileservice-spi:5.1.0.GA'
   }

}

cargo {

    containerId = 'jboss51x'
    port = 8080

    remote {
      username = "admin"
      password = "admin"
      hostname = "10.0.2.2"
    }

    deployable {
        context = 'myawesomewebapp'
    }
}

Here’s is the output for ‘gradle cargoDeployRemote -i’ showing the error:

Executing task ‘:cargoDeployRemote’ (up-to-date check took 0.002 secs) due to: Task.upToDateWhen is false. Container ID = jboss51x Deployable artifacts = [/home/gerald/testapp/build/libs/testapp.war] Starting action ‘deploy’ for remote container ‘JBoss 5.1.x’ on ‘http://10.0.2.2:8080’ Container properties = [:] :cargoDeployRemote FAILED :cargoDeployRemote (Thread[Daemon worker Thread 14,5,main]) completed. Took 0.588 secs.

FAILURE: Build failed with an exception.

What went wrong: Execution failed for task ‘:cargoDeployRemote’. org.codehaus.cargo.container.ContainerException: Failed to create deployer with implementation class org.codehaus.cargo.container.jboss.JBoss51xRemoteDeployer for the parameters (container [id = [jboss51x]], deployer type [remote]).

Help me on this Thanks!