2015-06-01 5 views
1

Я пытаюсь развернуть военный файл на удаленном контейнере JBoss 5.1.0.GA, используя файл сборки градиента и Gradle Плагин для грузовых автомобилей Бенджамин Мушко (https://github.com/bmuschko/gradle-cargo-plugin).Gradle + Cargo + JBoss 5.1 = java.lang.ClassNotFoundException: org.jnp.interfaces.NamingContextFactory

Я испытываю java.lang.ClassNotFoundException: org.jnp.interfaces.NamingContextFactory при запуске задачи loadDeployRemote в очень простом проекте. Сообщение about Cargo deployment on a JBoss 5.1.0.GA using Maven plugin помогло мне настроить зависимости. Недопустимый класс NamingContextFactory также определен, например, в зависимости от jboss-as-varia. Очевидно, я должен что-то упустить.

Проект - это только папка со следующим сценарием Gradle, не более того. Я должен добавить, что я запускаю скрипт сборки из виртуальной машины linux, виртуального хоста, использующего ArchLinux, и хочу удаленно развернуть на сервере JBoss 5.1.0.GA, запущенном на хосте. Я могу получить доступ к JBoss через адрес шлюза (10.0.2.2) от гостя, поэтому, я думаю, это не проблема.

Я попытался предоставить самый простой файл построения градиента для показа этой проблемы. Любые подсказки о том, что нужно сделать, чтобы сделать эту работу? Любая помощь оценивается.

Вот мой 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]).

А вот исключение:

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 
+0

Ваши репозитории.зависимости.providedCompile кажется неуместным. Вероятно, это должен быть buildscript.dependencies.classpath. У меня такая же проблема с java.lang.ClassNotFoundException: org.jnp.interfaces.NamingContextFactory и был бы признателен, если вы поделитесь любыми ответами, которые вы нашли здесь. –

ответ

0

Я нашел ответ на следующие ресурсы:

резюме того, что я должен был сделать, чтобы исправить проблемы в том, что я должен был иметь зависимости грузов в конфигурации груза на первом уровне зависимостей закрытия (не buildscript.dependencies закрытия) ,

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 
    } 
} 
Смежные вопросы