jboss-arquillian - Arquillian with Wildfly 8.0.0.Final Managed 不工作

标签 jboss-arquillian wildfly

我已经将 arquillian 与 jboss-as-7.1.1.Final 结合使用了一段时间。

我想开始使用 wildfly 8.0.0.Final,但我无法让它工作。

我只更改了我的 pom.xml 和 arquillian.xml。

这是我的“属性”:

<properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <version.joda.time>2.1</version.joda.time>
    <version.junit>4.11</version.junit>
    <version.mockito>1.9.5</version.mockito>
    <version.jacoco>0.6.0.201210061924</version.jacoco>
    <version.arquillian.bom>1.1.3.Final</version.arquillian.bom>
    <version.arquillian.drone.bom>1.3.0.Final</version.arquillian.drone.bom>
    <version.arquillian.jacoco>1.0.0.Alpha6</version.arquillian.jacoco>
    <version.arquillian.persistence>1.0.0.Alpha6</version.arquillian.persistence>
    <version.commons.collections>3.2.1</version.commons.collections>
    <version.commons.io>2.4</version.commons.io>
    <version.wildfly>8.0.0.Final</version.wildfly>
    <!-- <version.jbpm.3>3.3.1.GA</version.jbpm.3> -->
</properties>

相关的 Maven 配置文件声明如下所示:

    <profile>
        <id>arquillian-wildfly-managed</id>
        <activation>
            <activeByDefault>true</activeByDefault>
        </activation>
        <build>
            <plugins>
                <plugin>
                    <artifactId>maven-dependency-plugin</artifactId>
                    <executions>
                        <execution>
                            <id>unpack</id>
                            <phase>process-test-classes</phase>
                            <goals>
                                <goal>unpack</goal>
                            </goals>
                            <configuration>
                                <artifactItems>
                                    <artifactItem>
                                        <groupId>org.wildfly</groupId>
                                        <artifactId>wildfly-dist</artifactId>
                                        <version>${version.wildfly}</version>
                                        <type>zip</type>
                                        <overWrite>false</overWrite>
                                        <outputDirectory>target</outputDirectory>
                                    </artifactItem>
                                </artifactItems>
                            </configuration>
                        </execution>
                    </executions>
                </plugin>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-surefire-plugin</artifactId>
                    <version>2.16</version>
                    <configuration>
                        <systemPropertyVariables>
                            <arquillian.launch>wildfly-as-managed</arquillian.launch>
                        </systemPropertyVariables>
                    </configuration>
                </plugin>
            </plugins>
            <pluginManagement>
                <plugins>
                    <!-- Ignore/Execute plugin execution -->
                    <plugin>
                        <groupId>org.eclipse.m2e</groupId>
                        <artifactId>lifecycle-mapping</artifactId>
                        <version>1.0.0</version>
                        <configuration>
                            <lifecycleMappingMetadata>
                                <pluginExecutions>
                                    <!-- copy-dependency plugin -->
                                    <pluginExecution>
                                        <pluginExecutionFilter>
                                            <groupId>org.apache.maven.plugins</groupId>
                                            <artifactId>maven-dependency-plugin</artifactId>
                                            <versionRange>[1.0.0,)</versionRange>
                                            <goals>
                                                <goal>unpack</goal>
                                            </goals>
                                        </pluginExecutionFilter>
                                        <action>
                                            <execute />
                                        </action>
                                    </pluginExecution>
                                </pluginExecutions>
                            </lifecycleMappingMetadata>
                        </configuration>
                    </plugin>
                </plugins>
            </pluginManagement>
            <testResources>
                <testResource>
                    <directory>src/test/resources</directory>
                </testResource>
            </testResources>
        </build>
        <dependencies>
            <dependency>
                <groupId>org.wildfly</groupId>
                <artifactId>wildfly-dist</artifactId>
                <version>${version.wildfly}</version>
                <type>zip</type>
                <scope>test</scope>
            </dependency>
            <dependency>
                <groupId>org.jboss</groupId>
                <artifactId>jboss-common-core</artifactId>
                <version>2.2.17.GA</version>
                <scope>test</scope>
            </dependency>
            <dependency>
                <groupId>org.jboss.marshalling</groupId>
                <artifactId>jboss-marshalling-river</artifactId>
                <version>1.4.0.Final</version>
                <scope>test</scope>
            </dependency>
        </dependencies>
    </profile>

这是 arquillian.xml:

<arquillian
xmlns="http://jboss.org/schema/arquillian"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="
    http://jboss.org/schema/arquillian
    http://jboss.org/schema/arquillian/arquillian_1_0.xsd">

<defaultProtocol type="Servlet 3.0" />

<container
    qualifier="wildfly-as-managed"
    default="true">
    <configuration>
        <property name="jbossHome">target/wildfly-8.0.0.Final</property>
        <property name="javaVmArguments">-Djboss.socket.binding.port-offset=9 -Djboss.management.native.port=9080 -Xmx512m -XX:MaxPermSize=512m</property>
        <property name="managementPort">9090</property>
    </configuration>
</container>
<extension qualifier="persistence-dbunit">
    <property name="defaultDataSetFormat">YAML</property>
</extension>
</arquillian>

这是完整的错误堆栈跟踪:

java.lang.RuntimeException: Could not create new instance of class org.jboss.arquillian.test.impl.EventTestRunnerAdaptor
    at org.jboss.arquillian.test.spi.SecurityActions.newInstance(SecurityActions.java:160)
    at org.jboss.arquillian.test.spi.SecurityActions.newInstance(SecurityActions.java:111)
    at org.jboss.arquillian.test.spi.SecurityActions.newInstance(SecurityActions.java:97)
    at org.jboss.arquillian.test.spi.TestRunnerAdaptorBuilder.build(TestRunnerAdaptorBuilder.java:52)
    at org.jboss.arquillian.junit.Arquillian.run(Arquillian.java:93)
    at org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:50)
    at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38)
    at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:467)
    at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:683)
    at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:390)
    at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:197)
Caused by: java.lang.reflect.InvocationTargetException
    at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57)
    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
    at java.lang.reflect.Constructor.newInstance(Constructor.java:525)
    at org.jboss.arquillian.test.spi.SecurityActions.newInstance(SecurityActions.java:156)
    ... 10 more
Caused by: org.jboss.arquillian.container.impl.ContainerCreationException: Could not create Container wildfly-as-managed
    at org.jboss.arquillian.container.impl.LocalContainerRegistry.create(LocalContainerRegistry.java:85)
    at org.jboss.arquillian.container.impl.client.container.ContainerRegistryCreator.createRegistry(ContainerRegistryCreator.java:76)
    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:601)
    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)
    at org.jboss.arquillian.core.impl.ManagerImpl.bindAndFire(ManagerImpl.java:236)
    at org.jboss.arquillian.core.impl.InstanceImpl.set(InstanceImpl.java:74)
    at org.jboss.arquillian.config.impl.extension.ConfigurationRegistrar.loadConfiguration(ConfigurationRegistrar.java:60)
    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:601)
    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)
    at org.jboss.arquillian.core.impl.ManagerImpl.start(ManagerImpl.java:261)
    at org.jboss.arquillian.test.impl.EventTestRunnerAdaptor.<init>(EventTestRunnerAdaptor.java:56)
    ... 15 more
Caused by: java.lang.IllegalArgumentException: DeployableContainer must be specified
    at org.jboss.arquillian.core.spi.Validate.notNull(Validate.java:44)
    at org.jboss.arquillian.container.impl.ContainerImpl.<init>(ContainerImpl.java:71)
    at org.jboss.arquillian.container.impl.LocalContainerRegistry.create(LocalContainerRegistry.java:76)
    ... 39 more

最佳答案

我在您的配置文件中找不到任何 arquillian 容器依赖项,堆栈跟踪看起来像 arquillian 找不到要使用的容器。您是否只是忘记将容器添加到您的依赖项中?

试试这个:

<dependency>
  <groupId>org.wildfly</groupId>
  <artifactId>wildfly-arquillian-container-managed</artifactId>
  <scope>test</scope>
</dependency>

关于jboss-arquillian - Arquillian with Wildfly 8.0.0.Final Managed 不工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22567643/

相关文章:

java - 添加单个 Enterprise Bean 的 EJB 依赖注入(inject)所需的所有类

java - 有没有办法在 Wildfly 中禁用自动 JSON PATCH 应用程序

jakarta-ee - 为什么无状态 bean 被视为伪作用域并且不能具有循环依赖关系?

java - 在 WildFly 中的重新部署之间保持 HTTP session

jakarta-ee - JUnit @Test 中的 ArquillianProxyException 而不是 ConstrainViolationException(预期)

junit - Arquillian 无法在 Glassfish 嵌入式容器上注入(inject)本地或远程 EJB

java - 如何在单个浏览器中运行多个 UI 测试?

java - JBOSS_HOME 未在 Linux 中正确设置,Eclipse 中的 System.getenv 返回 null

spring - Wildfly 在启动时抛出 UnsupportedOperationException(命名上下文是只读的)

jakarta-ee - 如何在 Wildfly 10 中以编程方式创建数据源?