gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-03 04:39:06 31 4
gpt4 key购买 nike

我正在尝试使用gradle构建文件和Benjamin Muschko(https://github.com/bmuschko/gradle-cargo-plugin)的Gradle Cargo插件在远程JBoss 5.1.0.GA容器上部署war文件。

在一个非常简单的项目上启动cargoDeployRemote任务时,我遇到java.lang.ClassNotFoundException:org.jnp.interfaces.NamingContextFactory。
about Cargo deployment on a JBoss 5.1.0.GA using Maven plugin帖子帮助我设置了依赖项。
例如,缺少的类NamingContextFactory也在jboss-as-varia依赖项内定义。显然,我必须缺少一些东西。

该项目只是具有以下Gradle脚本的文件夹,仅此而已。
我必须补充一点,我从Linux虚拟机内部运行构建脚本,运行ArchLinux的virtualbox guest虚拟机运行,并且我想远程部署在主机上运行的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”的输出:

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]).


这是一个异常(exception):
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

最佳答案

我发现以下资源的答案:

  • https://discuss.gradle.org/t/dependency-classpath-issue-when-deploying-a-war-via-cargo-and-com-bmuschko-cargo-on-remote-jboss-5-1-0-ga/9943
  • https://github.com/bmuschko/gradle-cargo-plugin/issues/78

  • 解决该问题的摘要是,我必须在第一级依赖项关闭(而不是buildscript.dependencies关闭)中将 cargo 依赖项作为 cargo 配置。
    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
    }
    }

    关于gradle - Gradle + Cargo + JBoss 5.1 = java.lang.ClassNotFoundException:org.jnp.interfaces.NamingContextFactory,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30572740/

    31 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com