Gradle 格拉德尔+;货物+;JBoss 5.1=java.lang.ClassNotFoundException:org.jnp.interfaces.NamingContextFactory

Gradle 格拉德尔+;货物+;JBoss 5.1=java.lang.ClassNotFoundException:org.jnp.interfaces.NamingContextFactory,gradle,dependencies,jboss5.x,cargo,Gradle,Dependencies,Jboss5.x,Cargo,我试图在远程JBoss 5.1.0.GA容器上部署一个war文件,使用一个gradle构建文件和Benjamin Muschko()的gradle Cargo插件 在一个非常简单的项目上启动cargoDeployRemote任务时,我遇到了一个java.lang.ClassNotFoundException:org.jnp.interfaces.NamingContextFactory。 这篇文章帮助我建立了依赖关系。 缺少的类NamingContextFactory也在jboss中定义为var

我试图在远程JBoss 5.1.0.GA容器上部署一个war文件,使用一个gradle构建文件和Benjamin Muschko()的gradle Cargo插件

在一个非常简单的项目上启动cargoDeployRemote任务时,我遇到了一个java.lang.ClassNotFoundException:org.jnp.interfaces.NamingContextFactory。 这篇文章帮助我建立了依赖关系。 缺少的类NamingContextFactory也在jboss中定义为varia依赖项。很明显,我肯定错过了什么

该项目只是一个包含以下Gradle脚本的文件夹,仅此而已。 我必须补充一点,我从linux虚拟机(运行ArchLinux的virtualbox来宾)内部运行构建脚本,并且我希望在主机上运行的JBoss 5.1.0.GA服务器上远程部署。我可以通过来宾的网关地址(10.0.2.2)访问JBoss,所以我想这不是问题所在

我试图提供最简单的gradle构建文件来显示这个问题。 有没有关于应该做些什么来实现这一目标的线索?谢谢你的帮助

这是我的build.gradle文件:

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'
    }
}
以下是“gradle cargoDeployRemote-i”的输出,显示了错误:

正在执行任务“:cargoDeployRemote”(最新检查耗时0.002秒) 由于:Task.uptdatewhen为false。容器ID=jboss51x 可部署工件=[/home/gerald/testapp/build/libs/testapp.war] 在上启动远程容器“JBoss 5.1.x”的操作“部署” “”容器属性=[:]:cargoDeployRemote 失败:cargoDeployRemote(线程[守护进程工作线程14,5,主]) 完整的。花了0.588秒

失败:生成失败,出现异常

  • 错误:任务“:cargoDeployRemote”的执行失败。org.codehaus.cargo.container.ContainerException:未能创建 具有实现类的部署器 org.codehaus.cargo.container.jboss.JBoss51xRemoteDeployer用于 参数(容器[id=[jboss51x]],部署器类型[remote])
这里有一个例外:

Caused by: 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]).
    at org.codehaus.cargo.generic.spi.AbstractGenericHintFactory.createImplementation(AbstractGenericHintFactory.java:156)
    at org.codehaus.cargo.generic.spi.AbstractIntrospectionGenericHintFactory.createImplementation(AbstractIntrospectionGenericHintFactory.java:93)
    at org.codehaus.cargo.generic.deployer.DefaultDeployerFactory.createDeployer(DefaultDeployerFactory.java:140)
    at org.codehaus.cargo.generic.deployer.DefaultDeployerFactory.createDeployer(DefaultDeployerFactory.java:160)
    at org.codehaus.cargo.ant.CargoTask.executeActions(CargoTask.java:758)
    at org.codehaus.cargo.ant.CargoTask.execute(CargoTask.java:577)
    at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:292)
    at org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:106)
    ... 70 more
Caused by: java.lang.reflect.InvocationTargetException
    at org.codehaus.cargo.generic.deployer.DefaultDeployerFactory.createInstance(DefaultDeployerFactory.java:244)
    at org.codehaus.cargo.generic.deployer.DefaultDeployerFactory.createInstance(DefaultDeployerFactory.java:42)
    at org.codehaus.cargo.generic.spi.AbstractGenericHintFactory.createImplementation(AbstractGenericHintFactory.java:150)
    ... 77 more
Caused by: org.codehaus.cargo.util.CargoException: Cannot locate the JBoss connector classes! Make sure the required JBoss JARs (or Maven dependencies) are in CARGO's classpath.
More information on: http://cargo.codehaus.org/JBoss+Remote+Deployer
    at org.codehaus.cargo.container.jboss.JBoss5xRemoteDeployer.<init>(JBoss5xRemoteDeployer.java:161)
    at org.codehaus.cargo.container.jboss.JBoss51xRemoteDeployer.<init>(JBoss51xRemoteDeployer.java:41)
    ... 80 more
Caused by: java.lang.ClassNotFoundException: org.jnp.interfaces.NamingContextFactory
    at org.apache.tools.ant.AntClassLoader.findClassInComponents(AntClassLoader.java:1366)
    at org.apache.tools.ant.AntClassLoader.findClass(AntClassLoader.java:1315)
    at org.apache.tools.ant.AntClassLoader.loadClass(AntClassLoader.java:1068)
    at org.codehaus.cargo.container.jboss.JBoss5xRemoteDeployer.<init>(JBoss5xRemoteDeployer.java:156)
    ... 81 more
原因:org.codehaus.cargo.container.ContainerException:未能为参数(container[id=[jboss51x]],部署程序类型[remote])创建实现类为org.codehaus.cargo.container.jboss.JBoss51xRemoteDeployer的部署程序。
位于org.codehaus.cargo.generic.spi.AbstractGenericHandFactory.createImplementation(AbstractGenericHandFactory.java:156)
位于org.codehaus.cargo.generic.spi.AbstractIntrospectionEnericinFactory.createImplementation(AbstractIntrospectionEnericinFactory.java:93)
位于org.codehaus.cargo.generic.deployer.DefaultDeployerFactory.createDeployer(DefaultDeployerFactory.java:140)
位于org.codehaus.cargo.generic.deployer.DefaultDeployerFactory.createDeployer(DefaultDeployerFactory.java:160)
位于org.codehaus.cargo.ant.CargoTask.executeActions(CargoTask.java:758)
位于org.codehaus.cargo.ant.CargoTask.execute(CargoTask.java:577)
位于org.apache.tools.ant.UnknowneElement.execute(unknowneElement.java:292)
位于org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:106)
... 70多
原因:java.lang.reflect.InvocationTargetException
位于org.codehaus.cargo.generic.deployer.DefaultDeployerFactory.createInstance(DefaultDeployerFactory.java:244)
位于org.codehaus.cargo.generic.deployer.DefaultDeployerFactory.createInstance(DefaultDeployerFactory.java:42)
位于org.codehaus.cargo.generic.spi.AbstractGenericHandFactory.createImplementation(AbstractGenericHandFactory.java:150)
... 还有77个
原因:org.codehaus.cargo.util.CargoException:找不到JBoss连接器类!确保所需的JBoss JAR(或Maven依赖项)位于CARGO的类路径中。
更多关于:http://cargo.codehaus.org/JBoss+远程+部署器
位于org.codehaus.cargo.container.jboss.JBoss5xRemoteDeployer。(JBoss5xRemoteDeployer.java:161)
位于org.codehaus.cargo.container.jboss.JBoss51xRemoteDeployer(JBoss51xRemoteDeployer.java:41)
... 80多
原因:java.lang.ClassNotFoundException:org.jnp.interfaces.NamingContextFactory
位于org.apache.tools.ant.AntClassLoader.findClassInComponents(AntClassLoader.java:1366)
位于org.apache.tools.ant.AntClassLoader.findClass(AntClassLoader.java:1315)
位于org.apache.tools.ant.AntClassLoader.loadClass(AntClassLoader.java:1068)
位于org.codehaus.cargo.container.jboss.JBoss5xRemoteDeployer。(JBoss5xRemoteDeployer.java:156)
... 81多

我在以下资源中找到了答案:

我要做的修复问题的总结是,我必须在第一级依赖项闭包(而不是buildscript.dependentials闭包)中将货物依赖项作为货物配置


我从以下资源中找到了答案:

我要做的修复问题的总结是,我必须在第一级依赖项闭包(而不是buildscript.dependentials闭包)中将货物依赖项作为货物配置


您的repositories.dependencies.providedCompile似乎放错了位置。这些可能是buildscript.dependencies.classpath。也就是说,我对java.lang.ClassNotFoundException有同样的问题:org.jnp.interfaces.NamingContextFactory,如果您能分享在这里找到的任何答案,我将不胜感激。您的repositories.dependencies.providedCompile似乎放错地方了。这些可能是buildscript.dependencies.classpath。也就是说,我对java.lang.ClassNotFoundException有同样的问题:org.jnp.interfaces.NamingContextFactory,如果您能分享在这里找到的任何答案,我将不胜感激。您的repositories.dependencies.providedCompile似乎放错地方了。这些可能是buildscript.dependencies.classpath。也就是说,我对java.lang.ClassNotFoundException也有同样的问题:org.jnp.interfaces.NamingContextFactory,如果您能分享您找到的任何答案,我将不胜感激
apply plugin: 'ear'
apply plugin: 'com.bmuschko.cargo'  

buildscript {  
    repositories {
        mavenCentral()
    }
    dependencies {
        classpath 'com.bmuschko:gradle-cargo-plugin:2.2.1'        
    }
}

repositories {
    //Order of repositories is significant and will effect finding of jaas module
    maven {
        name = "JBoss Deprecated Maven Repository"
        url = "https://repository.jboss.org/nexus/content/repositories/deprecated"
    }
    maven {
        url 'https://repository.jboss.org/nexus/content/groups/public/'
    }        
    maven {
        name = "JBoss.org third party releases repository"
        url = "https://repository.jboss.org/nexus/content/repositories/thirdparty-releases"
    }  
    mavenCentral()
    jcenter()
}

dependencies {
    // My app specific modules taken out from here

    def cargoVersion = '1.4.5'
    cargo "org.codehaus.cargo:cargo-core-uberjar:$cargoVersion",
          "org.codehaus.cargo:cargo-ant:$cargoVersion"    
    cargo 'org.jboss.jbossas:jboss-as-jbossas-remoting:5.1.0.GA'
    cargo 'org.jboss.jbossas:jboss-as-client:5.1.0.GA'
    cargo 'org.jboss.jbossas:jboss-as-varia:5.1.0.GA'
    cargo 'org.jboss.integration:jboss-profileservice-spi:5.1.0.GA'
}

cargo {
    containerId = 'jboss51x'
    port = 8009

    remote {
        hostname = project.hostname
        username = project.username
        password = project.password
    }
}