首页 文章

Arquillian依赖关系管理:未找到ExecutorService

提问于
浏览
0

我在我的Wildfly项目中使用Arquillian,但是当我运行第一个测试时遇到以下问题:

Caused by: java.lang.ClassNotFoundException: org.jboss.arquillian.core.api.threading.ExecutorService
at java.net.URLClassLoader$1.run(URLClassLoader.java:366)
at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
at java.lang.ClassLoader.loadClass(ClassLoader.java:425)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
at java.lang.ClassLoader.loadClass(ClassLoader.java:358)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:270)
at sun.reflect.generics.factory.CoreReflectionFactory.makeNamedType(CoreReflectionFactory.java:114)
... 55 more

这是我的pom.xml:

<?xml version="1.0" encoding="UTF-8"?>
 <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>

<groupId>com.ppp</groupId>
<artifactId>dummy</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>war</packaging>
<name>dummy V1</name>
<description>A starter Java EE 7 webapp project for use on JBoss WildFly / WildFly, generated from the jboss-javaee6-webapp archetype</description>

<url>http://wildfly.org</url>
<licenses>
    <license>
        <name>Apache License, Version 2.0</name>
        <distribution>repo</distribution>
        <url>http://www.apache.org/licenses/LICENSE-2.0.html</url>
    </license>
</licenses>

<properties>
    <!-- Explicitly declaring the source encoding eliminates the following 
        message: -->
    <!-- [WARNING] Using platform encoding (UTF-8 actually) to copy filtered 
        resources, i.e. build is platform dependent! -->
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>

    <!-- JBoss dependency versions -->
    <version.wildfly.maven.plugin>1.0.2.Final</version.wildfly.maven.plugin>

    <!-- Define the version of the JBoss BOMs we want to import to specify 
        tested stacks. -->
    <version.jboss.bom>8.2.1.Final</version.jboss.bom>

    <!-- other plugin versions -->
    <version.compiler.plugin>3.1</version.compiler.plugin>
    <version.surefire.plugin>2.16</version.surefire.plugin>
    <version.war.plugin>2.5</version.war.plugin>

    <!-- maven-compiler-plugin -->
    <maven.compiler.target>1.7</maven.compiler.target>
    <maven.compiler.source>1.7</maven.compiler.source>

    <version.arquillian_universe>1.0.0.Alpha1</version.arquillian_universe>
    <version.arquillian_core>1.1.10.Final</version.arquillian_core>
    <version.arquillian_spock>1.0.0.Alpha2</version.arquillian_spock>
    <version.junit>4.12</version.junit>
    <version.jboss_spec>1.0.3.Final</version.jboss_spec>

    <version.fest_assert>1.4</version.fest_assert>

</properties>


<dependencyManagement>
    <dependencies>

        <dependency>
            <groupId>org.wildfly.bom</groupId>
            <artifactId>jboss-javaee-7.0-with-all</artifactId>
            <version>${version.jboss.bom}</version>
            <type>pom</type>
            <scope>import</scope>
        </dependency>
    <dependency> 
            <groupId>org.wildfly.bom</groupId> 
        <artifactId>jboss-javaee-7.0-with-hibernate</artifactId> 
            <version>${version.jboss.bom}</version>
            <type>pom</type>
            <scope>import</scope>
        </dependency>

        <dependency>
            <groupId>org.arquillian</groupId>
            <artifactId>arquillian-universe</artifactId>
            <version>${version.arquillian_universe}</version>
            <type>pom</type>
            <scope>import</scope>
        </dependency>

        <dependency>
            <groupId>org.easytesting</groupId>
            <artifactId>fest-assert</artifactId>
            <version>${version.fest_assert}</version>
            <scope>test</scope>
        </dependency>

        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>${version.junit}</version>
            <scope>test</scope>
        </dependency>


    </dependencies>
</dependencyManagement>

<dependencies>

    <!-- First declare the APIs we depend on and need for compilation. All 
        of them are provided by JBoss WildFly -->

    <!-- Import the CDI API, we use provided scope as the API is included in 
        JBoss WildFly -->
    <dependency>
        <groupId>javax.enterprise</groupId>
        <artifactId>cdi-api</artifactId>
        <scope>provided</scope>
    </dependency>

    <!-- Import the Common Annotations API (JSR-250), we use provided scope 
        as the API is included in JBoss WildFly -->
    <dependency>
        <groupId>org.jboss.spec.javax.annotation</groupId>
        <artifactId>jboss-annotations-api_1.2_spec</artifactId>
        <scope>provided</scope>
    </dependency>

    <!-- Import the JAX-RS API, we use provided scope as the API is included 
        in JBoss WildFly -->
    <dependency>
        <groupId>org.jboss.resteasy</groupId>
        <artifactId>jaxrs-api</artifactId>
        <scope>provided</scope>
    </dependency>

    <!-- Import the JPA API, we use provided scope as the API is included in 
        JBoss WildFly -->
    <dependency>
        <groupId>org.hibernate.javax.persistence</groupId>
        <artifactId>hibernate-jpa-2.1-api</artifactId>
        <scope>provided</scope>
    </dependency>

    <!-- Import the EJB API, we use provided scope as the API is included in 
        JBoss WildFly -->
    <dependency>
        <groupId>org.jboss.spec.javax.ejb</groupId>
        <artifactId>jboss-ejb-api_3.2_spec</artifactId>
        <scope>provided</scope>
    </dependency>

    <!-- JSR-303 (Bean Validation) Implementation -->
    <!-- Provides portable constraints such as @Email -->
    <!-- Hibernate Validator is shipped in JBoss WildFly -->
    <dependency>
        <groupId>org.hibernate</groupId>
        <artifactId>hibernate-validator</artifactId>
        <scope>provided</scope>
        <exclusions>
            <exclusion>
                <groupId>org.slf4j</groupId>
                <artifactId>slf4j-api</artifactId>
            </exclusion>
        </exclusions>
    </dependency>

    <!-- Import the JSF API, we use provided scope as the API is included in 
        JBoss WildFly -->
    <dependency>
        <groupId>org.jboss.spec.javax.faces</groupId>
        <artifactId>jboss-jsf-api_2.2_spec</artifactId>
        <scope>provided</scope>
    </dependency>

    <!-- Now we declare any tools needed -->

    <!-- Annotation processor to generate the JPA 2.0 metamodel classes for 
        typesafe criteria queries -->
    <dependency>
        <groupId>org.hibernate</groupId>
        <artifactId>hibernate-jpamodelgen</artifactId>
        <scope>provided</scope>
    </dependency>

    <!-- Annotation processor that raising compilation errors whenever constraint 
        annotations are incorrectly used. -->
    <dependency>
        <groupId>org.hibernate</groupId>
        <artifactId>hibernate-validator-annotation-processor</artifactId>
        <scope>provided</scope>
    </dependency>

    <!-- Needed for running tests (you may also use TestNG) -->
    <dependency>
        <groupId>junit</groupId>
        <artifactId>junit</artifactId>
        <scope>test</scope>
    </dependency>

    <!-- Optional, but highly recommended -->
    <!-- Arquillian allows you to test enterprise code such as EJBs and Transactional(JTA) 
        JPA from JUnit/TestNG -->
    <dependency>
        <groupId>org.easytesting</groupId>
        <artifactId>fest-assert</artifactId>
        <scope>test</scope>
    </dependency>

    <dependency>
        <groupId>org.arquillian.universe</groupId>
        <artifactId>arquillian-junit</artifactId>
        <scope>test</scope>
        <type>pom</type>
    </dependency>
    <dependency>
        <groupId>org.arquillian.universe</groupId>
        <artifactId>arquillian-persistence</artifactId>
        <scope>test</scope>
        <type>pom</type>
    </dependency>
    <dependency>
        <groupId>org.arquillian.universe</groupId>
        <artifactId>arquillian-chameleon</artifactId>
        <scope>test</scope>
        <type>pom</type>
    </dependency>

</dependencies>

<build>
    <!-- Maven will append the version to the finalName (which is the name 
        given to the generated war, and hence the context root) -->
    <finalName>${project.artifactId}</finalName>
    <plugins>
        <plugin>
            <artifactId>maven-war-plugin</artifactId>
            <version>${version.war.plugin}</version>
            <configuration>
                <!-- Java EE 7 doesn't require web.xml, Maven needs to catch up! -->
                <failOnMissingWebXml>false</failOnMissingWebXml>
            </configuration>
        </plugin>
        <!-- The WildFly plugin deploys your war to a local WildFly container -->
        <!-- To use, run: mvn package wildfly:deploy -->
        <plugin>
            <groupId>org.wildfly.plugins</groupId>
            <artifactId>wildfly-maven-plugin</artifactId>
            <version>${version.wildfly.maven.plugin}</version>
        </plugin>
    </plugins>
</build>

<profiles>
    <profile>
        <!-- The default profile skips all tests, though you can tune it to run 
            just unit tests based on a custom pattern -->
        <!-- Seperate profiles are provided for running all tests, including Arquillian 
            tests that execute in the specified container -->
        <id>default</id>
        <activation>
            <activeByDefault>true</activeByDefault>
        </activation>
        <build>
            <plugins>
                <plugin>
                    <artifactId>maven-surefire-plugin</artifactId>
                    <version>${version.surefire.plugin}</version>
                    <configuration>
                        <skip>true</skip>
                    </configuration>
                </plugin>
            </plugins>
        </build>
    </profile>

    <profile>

        <!-- An optional Arquillian testing profile that executes tests in your 
            WildFly instance -->
        <!-- This profile will start a new WildFly instance, and execute the test, 
            shutting it down when done -->
        <!-- Run with: mvn clean test -Parq-wildfly-managed -->
        <id>arq-wildfly-managed</id>
        <dependencies>
            <dependency>
                <groupId>org.wildfly</groupId>
                <artifactId>wildfly-arquillian-container-managed</artifactId>
                <scope>test</scope>
            </dependency>
        </dependencies>
    </profile>

    <profile>
        <!-- An optional Arquillian testing profile that executes tests in a remote 
            WildFly instance -->
        <!-- Run with: mvn clean test -Parq-wildfly-remote -->
        <id>arq-wildfly-remote</id>
        <dependencies>
            <dependency>
                <groupId>org.wildfly</groupId>
                <artifactId>wildfly-arquillian-container-remote</artifactId>
                <scope>test</scope>
            </dependency>
        </dependencies>
    </profile>



</profiles>

我也试过这个命令“mvn dependency:tree”,结果如下:

[INFO] Scanning for projects...
   [INFO]                                                                         
[INFO] ------------------------------------------------------------------------
[INFO] Building my project V1 0.0.1-SNAPSHOT
[INFO] ------------------------------------------------------------------------
[INFO] 
[INFO] --- maven-dependency-plugin:2.8:tree (default-cli) @ my3dplayer ---
[INFO] com.visiativ:my3dplayer:war:0.0.1-SNAPSHOT
[INFO] +- javax.enterprise:cdi-api:jar:1.2:provided
[INFO] |  +- javax.el:javax.el-api:jar:3.0.0:provided
[INFO] |  +- javax.interceptor:javax.interceptor-api:jar:1.2:provided
[INFO] |  \- javax.inject:javax.inject:jar:1:provided
[INFO] +- org.jboss.spec.javax.annotation:jboss-annotations-api_1.2_spec:jar:1.0.0.Final:provided
[INFO] +- org.jboss.resteasy:jaxrs-api:jar:3.0.10.Final:provided
[INFO] +- org.hibernate.javax.persistence:hibernate-jpa-2.1-api:jar:1.0.0.Final:provided
[INFO] +- org.jboss.spec.javax.ejb:jboss-ejb-api_3.2_spec:jar:1.0.0.Final:provided
[INFO] +- org.hibernate:hibernate-validator:jar:5.1.3.Final:provided
[INFO] |  +- javax.validation:validation-api:jar:1.1.0.Final:provided
[INFO] |  +- org.jboss.logging:jboss-logging:jar:3.1.4.GA:provided
[INFO] |  \- com.fasterxml:classmate:jar:1.0.0:provided
[INFO] +- org.jboss.spec.javax.faces:jboss-jsf-api_2.2_spec:jar:2.2.8:provided
[INFO] +- org.hibernate:hibernate-jpamodelgen:jar:4.3.5.Final:provided
[INFO] |  \- org.jboss.logging:jboss-logging-annotations:jar:1.2.0.Beta1:provided
[INFO] +- org.hibernate:hibernate-validator-annotation-processor:jar:5.1.3.Final:provided
[INFO] +- junit:junit:jar:4.12:test
[INFO] |  \- org.hamcrest:hamcrest-core:jar:1.3:test
[INFO] +- org.easytesting:fest-assert:jar:1.4:test
[INFO] |  \- org.easytesting:fest-util:jar:1.1.6:test
[INFO] +- org.arquillian.universe:arquillian-junit:pom:1.0.0.Alpha1:test
[INFO] |  +- org.arquillian.universe:arquillian-core:pom:1.0.0.Alpha1:test
[INFO] |  |  \- org.jboss.shrinkwrap.resolver:shrinkwrap-resolver-depchain:pom:2.0.0:test
[INFO] |  |     +- org.jboss.shrinkwrap.resolver:shrinkwrap-resolver-api:jar:2.0.0:test
[INFO] |  |     +- org.jboss.shrinkwrap.resolver:shrinkwrap-resolver-spi:jar:2.0.0:test
[INFO] |  |     +- org.jboss.shrinkwrap.resolver:shrinkwrap-resolver-api-maven:jar:2.0.0:test
[INFO] |  |     +- org.jboss.shrinkwrap.resolver:shrinkwrap-resolver-spi-maven:jar:2.0.0:test
[INFO] |  |     +- org.jboss.shrinkwrap.resolver:shrinkwrap-resolver-impl-maven:jar:2.0.0:test
[INFO] |  |     |  +- org.sonatype.aether:aether-api:jar:1.13.1:test
[INFO] |  |     |  +- org.sonatype.aether:aether-impl:jar:1.13.1:test
[INFO] |  |     |  +- org.sonatype.aether:aether-spi:jar:1.13.1:test
[INFO] |  |     |  +- org.sonatype.aether:aether-util:jar:1.13.1:test
[INFO] |  |     |  +- org.sonatype.aether:aether-connector-wagon:jar:1.13.1:test
[INFO] |  |     |  +- org.apache.maven:maven-aether-provider:jar:3.0.5:test
[INFO] |  |     |  +- org.apache.maven:maven-model:jar:3.0.5:test
[INFO] |  |     |  +- org.apache.maven:maven-model-builder:jar:3.0.5:test
[INFO] |  |     |  +- org.apache.maven:maven-repository-metadata:jar:3.0.5:test
[INFO] |  |     |  +- org.apache.maven:maven-settings:jar:3.0.5:test
[INFO] |  |     |  +- org.apache.maven:maven-settings-builder:jar:3.0.5:test
[INFO] |  |     |  +- org.codehaus.plexus:plexus-interpolation:jar:1.14:test
[INFO] |  |     |  +- org.codehaus.plexus:plexus-utils:jar:2.0.6:test
[INFO] |  |     |  +- org.sonatype.plexus:plexus-sec-dispatcher:jar:1.4:test
[INFO] |  |     |  |  \- org.sonatype.plexus:plexus-cipher:jar:1.4:test
[INFO] |  |     |  +- org.apache.maven.wagon:wagon-provider-api:jar:2.4:test
[INFO] |  |     |  +- org.apache.maven.wagon:wagon-file:jar:2.4:test
[INFO] |  |     |  \- org.apache.maven.wagon:wagon-http-lightweight:jar:2.4:test
[INFO] |  |     |     \- org.apache.maven.wagon:wagon-http-shared4:jar:2.4:test
[INFO] |  |     |        +- org.jsoup:jsoup:jar:1.7.1:test
[INFO] |  |     |        +- org.apache.httpcomponents:httpcore:jar:4.2.3:test
[INFO] |  |     |        \- commons-io:commons-io:jar:2.0.1:test
[INFO] |  |     \- org.jboss.shrinkwrap.resolver:shrinkwrap-resolver-impl-maven-archive:jar:2.0.0:test
[INFO] |  |        +- org.jboss.shrinkwrap.resolver:shrinkwrap-resolver-api-maven-archive:jar:2.0.0:test
[INFO] |  |        +- org.jboss.shrinkwrap.resolver:shrinkwrap-resolver-spi-maven-archive:jar:2.0.0:test
[INFO] |  |        +- org.codehaus.plexus:plexus-compiler-javac:jar:2.1:test
[INFO] |  |        |  \- org.codehaus.plexus:plexus-compiler-api:jar:2.1:test
[INFO] |  |        \- org.codehaus.plexus:plexus-component-api:jar:1.0-alpha-33:test
[INFO] |  |           \- org.codehaus.plexus:plexus-classworlds:jar:1.2-alpha-10:test
[INFO] |  \- org.jboss.arquillian.junit:arquillian-junit-container:jar:1.1.2.Final-wildfly-1:test
[INFO] |     +- org.jboss.arquillian.junit:arquillian-junit-core:jar:1.1.2.Final-wildfly-1:test
[INFO] |     +- org.jboss.arquillian.test:arquillian-test-api:jar:1.1.2.Final-wildfly-1:test
[INFO] |     |  \- org.jboss.arquillian.core:arquillian-core-api:jar:1.1.2.Final-wildfly-1:test
[INFO] |     +- org.jboss.arquillian.test:arquillian-test-spi:jar:1.1.2.Final-wildfly-1:test
[INFO] |     |  \- org.jboss.arquillian.core:arquillian-core-spi:jar:1.1.2.Final-wildfly-1:test
[INFO] |     +- org.jboss.arquillian.container:arquillian-container-test-api:jar:1.1.2.Final-wildfly-1:test
[INFO] |     |  \- org.jboss.shrinkwrap:shrinkwrap-api:jar:1.1.2:test
[INFO] |     +- org.jboss.arquillian.container:arquillian-container-test-spi:jar:1.1.2.Final-wildfly-1:test
[INFO] |     +- org.jboss.arquillian.core:arquillian-core-impl-base:jar:1.1.2.Final-wildfly-1:test
[INFO] |     +- org.jboss.arquillian.test:arquillian-test-impl-base:jar:1.1.2.Final-wildfly-1:test
[INFO] |     +- org.jboss.arquillian.container:arquillian-container-impl-base:jar:1.1.2.Final-wildfly-1:test
[INFO] |     |  +- org.jboss.arquillian.config:arquillian-config-api:jar:1.1.2.Final-wildfly-1:test
[INFO] |     |  \- org.jboss.shrinkwrap.descriptors:shrinkwrap-descriptors-spi:jar:2.0.0-alpha-3:test
[INFO] |     +- org.jboss.arquillian.container:arquillian-container-test-impl-base:jar:1.1.2.Final-wildfly-1:test
[INFO] |     \- org.jboss.shrinkwrap:shrinkwrap-impl-base:jar:1.1.2:test
[INFO] |        \- org.jboss.shrinkwrap:shrinkwrap-spi:jar:1.1.2:test
[INFO] +- org.arquillian.universe:arquillian-persistence:pom:1.0.0.Alpha1:test
[INFO] |  +- org.arquillian.universe:arquillian-transaction-jta:pom:1.0.0.Alpha1:test
[INFO] |  |  +- org.arquillian.universe:arquillian-transaction-core:pom:1.0.0.Alpha1:test
[INFO] |  |  |  \- org.jboss.arquillian.extension:arquillian-transaction-impl-base:jar:1.0.1.Final:test
[INFO] |  |  \- org.jboss.arquillian.extension:arquillian-transaction-jta:jar:1.0.1.Final:test
[INFO] |  |     +- org.jboss.arquillian.extension:arquillian-transaction-api:jar:1.0.1.Final:test
[INFO] |  |     \- org.jboss.arquillian.extension:arquillian-transaction-spi:jar:1.0.1.Final:test
[INFO] |  \- org.arquillian.universe:arquillian-persistence-core:pom:1.0.0.Alpha1:test
[INFO] |     \- org.jboss.arquillian.extension:arquillian-persistence-dbunit:jar:1.0.0.Alpha7:test
[INFO] |        +- org.jboss.arquillian.extension:arquillian-persistence-api:jar:1.0.0.Alpha7:test
[INFO] |        +- org.jboss.arquillian.extension:arquillian-persistence-spi:jar:1.0.0.Alpha7:test
[INFO] |        +- org.jboss.arquillian.extension:arquillian-persistence-core:jar:1.0.0.Alpha7:test
[INFO] |        +- org.dbunit:dbunit:jar:2.5.0:test
[INFO] |        |  \- commons-collections:commons-collections:jar:3.2.1:test
[INFO] |        +- org.slf4j:slf4j-api:jar:1.7.5:test
[INFO] |        +- org.yaml:snakeyaml:jar:1.10:test
[INFO] |        +- org.codehaus.jackson:jackson-mapper-asl:jar:1.9.12:test
[INFO] |        |  \- org.codehaus.jackson:jackson-core-asl:jar:1.9.12:test
[INFO] |        +- org.apache.poi:poi:jar:3.2-FINAL:test
[INFO] |        |  +- commons-logging:commons-logging:jar:1.1:test
[INFO] |        |  \- log4j:log4j:jar:1.2.16:test
[INFO] |        \- org.jboss.shrinkwrap.descriptors:shrinkwrap-descriptors-api-base:jar:2.0.0-alpha-3:test
[INFO] \- org.arquillian.universe:arquillian-chameleon:pom:1.0.0.Alpha1:test
[INFO]    \- org.arquillian.container:arquillian-container-chameleon:jar:1.0.0.Alpha5:test
[INFO]       +- org.jboss.arquillian.config:arquillian-config-impl-base:jar:1.1.2.Final-wildfly-1:test
[INFO]       +- org.jboss.arquillian.container:arquillian-container-spi:jar:1.1.2.Final-wildfly-1:test
[INFO]       +- org.jboss.arquillian.protocol:arquillian-protocol-servlet:jar:1.1.2.Final-wildfly-1:test
[INFO]       +- org.jboss.arquillian.testenricher:arquillian-testenricher-ejb:jar:1.1.2.Final-wildfly-1:test
[INFO]       +- org.jboss.arquillian.testenricher:arquillian-testenricher-resource:jar:1.1.2.Final-wildfly-1:test
[INFO]       +- org.jboss.arquillian.testenricher:arquillian-testenricher-cdi:jar:1.1.2.Final-wildfly-1:test
[INFO]       \- org.jboss.arquillian.testenricher:arquillian-testenricher-initialcontext:jar:1.1.2.Final-wildfly-1:test
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 3.994 s
[INFO] Finished at: 2015-11-23T22:39:38+00:00
[INFO] Final Memory: 16M/232M
[INFO] ------------------------------------------------------------------------

谢谢你的帮助 .

1 回答

  • 1

    我找到了使用Wildfly Hibernate BOM和Arquillian Universe BOM的解决方案:

    <dependency>
                <groupId>org.wildfly.bom</groupId>
                <artifactId>jboss-javaee-7.0-with-hibernate</artifactId>
                <version>${version.jboss.bom}</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
    
    
            <dependency>
                <groupId>org.arquillian</groupId>
                <artifactId>arquillian-universe</artifactId>
                <version>${version.arquillian_universe}</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
    

相关问题