Arquillian: Wildfly intégré?
Jusqu'à maintenant, j'ai eu mes tests d'intégration en cours d'exécution avec Arquillian et embarque une Glassfish 4.x. Comme je souffre de bug ARQ-1458j'ai essayé de migrer vers Wildfly 8.0.0.Beta1.
Mon deps dans Maven sont:
<dependency>
<groupId>org.jboss.arquillian</groupId>
<artifactId>arquillian-bom</artifactId>
<version>1.1.2.Final</version>
<scope>import</scope>
<type>pom</type>
</dependency>
<dependency>
<groupId>org.jboss.arquillian.junit</groupId>
<artifactId>arquillian-junit-container</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.wildfly</groupId>
<artifactId>wildfly-arquillian-container-embedded</artifactId>
<version>8.0.0.Beta1</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.wildfly</groupId>
<artifactId>wildfly-embedded</artifactId>
<version>8.0.0.Beta1</version>
<scope>test</scope>
</dependency>
Lors de l'exécution de mon test, j'obtiens l'erreur que jbossHome est null. Je n'ai PAS de arquillian.xml. Lors de la vérification des sources Github pour wildfly-arquillian-conteneur-embedded (POM), je me demande POURQUOI un conteneur embarqué nécessite JBOSS_HOME? Je comprends pour l'avoir pour la gestion à distance et de variantes, mais pourquoi ai-je besoin de systèmes embarqués?
Arquillian pages seulement d'avoir des exemples pour JBoss COMME la gestion des serveurs, donc je me demande ce qu'il est possible (mais pourquoi est-il wildfly-arquillian-conteneur embarqué alors?)?
Ou dois-je en tenir à un conteneur géré avec l'aide de l'maven-dépendance-plugin pour télécharger le conteneur (voir http://arquillian.org/guides/getting_started/#add_more_containers - bas)?
Merci et meilleures salutations!
D'erreur Exact est:
org.jboss.arquillian.container.spi.ConfigurationException: jbossHome 'null' must exist
at org.jboss.arquillian.container.spi.client.deployment.Validate.configurationDirectoryExists(Validate.java:139)
at org.jboss.as.arquillian.container.embedded.EmbeddedContainerConfiguration.validate(EmbeddedContainerConfiguration.java:102)
at org.jboss.arquillian.container.impl.ContainerImpl.createDeployableConfiguration(ContainerImpl.java:115)
at org.jboss.arquillian.container.impl.ContainerImpl.setup(ContainerImpl.java:181)
at org.jboss.arquillian.container.impl.client.container.ContainerLifecycleController$7.perform(ContainerLifecycleController.java:149)
at org.jboss.arquillian.container.impl.client.container.ContainerLifecycleController$7.perform(ContainerLifecycleController.java:145)
at org.jboss.arquillian.container.impl.client.container.ContainerLifecycleController.forContainer(ContainerLifecycleController.java:255)
at org.jboss.arquillian.container.impl.client.container.ContainerLifecycleController.setupContainer(ContainerLifecycleController.java:144)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:606)
at org.jboss.arquillian.core.impl.ObserverImpl.invoke(ObserverImpl.java:94)
at org.jboss.arquillian.core.impl.EventContextImpl.invokeObservers(EventContextImpl.java:99)
at org.jboss.arquillian.core.impl.EventContextImpl.proceed(EventContextImpl.java:81)
at org.jboss.arquillian.container.impl.client.ContainerDeploymentContextHandler.createContainerContext(ContainerDeploymentContextHandler.java:57)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:606)
at org.jboss.arquillian.core.impl.ObserverImpl.invoke(ObserverImpl.java:94)
at org.jboss.arquillian.core.impl.EventContextImpl.proceed(EventContextImpl.java:88)
at org.jboss.arquillian.core.impl.ManagerImpl.fire(ManagerImpl.java:135)
at org.jboss.arquillian.core.impl.ManagerImpl.fire(ManagerImpl.java:115)
at org.jboss.arquillian.core.impl.EventImpl.fire(EventImpl.java:67)
at org.jboss.arquillian.container.impl.client.container.ContainerLifecycleController$1.perform(ContainerLifecycleController.java:62)
at org.jboss.arquillian.container.impl.client.container.ContainerLifecycleController$1.perform(ContainerLifecycleController.java:55)
at org.jboss.arquillian.container.impl.client.container.ContainerLifecycleController.forEachContainer(ContainerLifecycleController.java:209)
at org.jboss.arquillian.container.impl.client.container.ContainerLifecycleController.setupContainers(ContainerLifecycleController.java:54)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:606)
at org.jboss.arquillian.core.impl.ObserverImpl.invoke(ObserverImpl.java:94)
at org.jboss.arquillian.core.impl.EventContextImpl.invokeObservers(EventContextImpl.java:99)
at org.jboss.arquillian.core.impl.EventContextImpl.proceed(EventContextImpl.java:81)
at org.jboss.arquillian.core.impl.ManagerImpl.fire(ManagerImpl.java:135)
at org.jboss.arquillian.core.impl.ManagerImpl.fire(ManagerImpl.java:115)
source d'informationauteur Timo Böwing
Vous devez vous connecter pour publier un commentaire.
On doit définir la variable d'environnement JBOSS_HOME le chemin d'installation de jBoss. Sinon, une balise propriété devraient être ajoutés à arquillian.xml à l'intérieur d'une balise conteneur.
à partir de l'exemple d'application jboss-javaee6-webapp
utilisation systemPropertyVariables
Regarder ce joli article écrit par Dan Allen.
Pour être bref: en général, ne pas utiliser un conteneur embarqué (glassfish avec EclipseLink en particulier). Serveur autonome nous donne plus des résultats de test précis.
Aussi je préfère distance adaptateurs en raison de vitesse de développement (aucun démarrage du serveur avec tous les test de lancement, il suffit de le lancer manuellement une fois).
Si vous souhaitez que le conteneur pour démarrer automatiquement comme avec embedded, puis de passer à une gestion conteneur.
Espère que cela aide.
Eh bien, je suppose qu'il fonctionne différemment w/Wildfly qu'avec Glassfish:
https://community.jboss.org/thread/236562
🙁
Edit: Docker ajoute un autre point de vue sur cette question. Je pourrais facilement gérer le conteneur externe à l'aide de Docker et Maven, tout en utilisant Arquillian. Ne pas tester encore, mais si quelqu'un tombe sur ce...