2014-04-16 38 views
0

我正在研究Glassfish和WildFly/Jboss在与Arquillian一起使用时进行测试的区别。整个调查都在GitHub上进行。到目前为止,我只写了一个简单的例子来测试CDI。这里是代码的要点:如何将Arquillian与WildFly 8.0.0嵌入使用?

Greeter.java

public class Greeter { 
    public String greeting() { 
     return "Hello, there"; 
    } 
} 

GreeterTest.groovy

class GreeterTest extends ArquillianWarBase { 
    @Inject Greeter greeter 
    @Test 
    public void should() { 
     assert greeter.greeting() == 'Hello, there' 
    } 
} 

ArquillianWarBase.java

@RunWith(Arquillian.class) 
public abstract class ArquillianWarBase { 
    private static WebArchive war; 
    @Deployment 
    public static WebArchive createDeployment() { 
     if(war == null) { 
      war = ShrinkWrap.create(WebArchive.class, "demo-test.war") 
        .addPackages(true, Filters.exclude(".*Test.*"), 
          "demo") 
        .addAsWebInfResource("beans-test.xml", "beans.xml") 
        .addAsWebInfResource("web-test.xml", "web.xml"); 
     } 
     return war; 
    } 
} 

我使用Gradle。下面是build.gradle依赖性部分:

dependencies { 
    if(project.hasProperty('jee6')) { 
     println 'using java ee 6' 
     providedCompile 'javax:javaee-api:6.0' 
     if(project.hasProperty('jboss')) { 
      if(project.hasProperty('remote')) { 
       testRuntime 'org.wildfly:wildfly-arquillian-container-remote:8.1.0.CR1' 
      } else { 
       testRuntime 'org.wildfly:wildfly-embedded:8.1.0.CR1' 
       testRuntime 'org.wildfly:wildfly-arquillian-container-embedded:8.1.0.CR1' 
      } 
     } else { 
      testRuntime 'org.glassfish.main.extras:glassfish-embedded-all:4.0' 
      testRuntime 'org.glassfish.main.extras:glassfish-embedded-all:3.1.2.2' 
     } 
    } else { 
     println 'using java ee 7' 
     providedCompile 'javax:javaee-api:7.0' 
     if(project.hasProperty('jboss')) { 
      println 'using jboss' 
      if(project.hasProperty('remote')) { 
       println 'using wildfly remote' 
       testRuntime 'org.wildfly:wildfly-arquillian-container-remote:8.0.0.Final' 
      } else { 
       println 'using wildfly embedded' 
       makeArquillianXml('wildfly-embedded') 
       testRuntime 'org.wildfly:wildfly-embedded:8.0.0.Final' 
       testRuntime 'org.wildfly:wildfly-arquillian-container-embedded:8.0.0.Final' 
      } 
     } else { 
      println 'using glassfish' 
      if(project.hasProperty('remote')) { 
       println 'using glassfish remote' 
       testRuntime 'org.jboss.arquillian.container:arquillian-glassfish-remote-3.1:1.0.0.CR4' 
      } else { 
       println 'using glassfish embedded' 
       makeArquillianXml('glassfish-embedded') 
       testRuntime 'org.glassfish.main.extras:glassfish-embedded-all:4.0' 
       testRuntime 'org.jboss.arquillian.container:arquillian-glassfish-embedded-3.1:1.0.0.CR4' 
      } 
     } 
    } 

    testCompile 'org.codehaus.groovy:groovy-all:2.2.1' 
    testCompile 'junit:junit:4.11' 
    testCompile 'org.jboss.arquillian:arquillian-bom:1.1.4.Final' 
    testCompile 'org.jboss.arquillian.junit:arquillian-junit-container:1.1.4.Final' 

    testRuntime 'org.hsqldb:hsqldb:2.3.0' 
} 

当运行使用Glassfish的4嵌入在测试中,测试通过。

INFO [org.jboss.modules] JBoss Modules version 1.3.0.Final 

demo.GreeterTest STANDARD_ERROR 
    Apr 15, 2014 6:25:21 PM org.jboss.modules.Module setModuleLogger 
    INFO: JBoss Modules version 1.3.0.Final 
INFO [org.jboss.msc] JBoss MSC version 1.2.0.Final 
    Apr 15, 2014 6:25:21 PM org.jboss.msc.service.ServiceContainerImpl <clinit> 
    INFO: JBoss MSC version %s 
INFO [org.jboss.as] JBAS015899: JBoss AS 7.2.0.Final-redhat-8 "Janus" starting 
    Apr 15, 2014 6:25:21 PM org.jboss.as.server.ApplicationServerService start 
    INFO: JBAS015899: JBoss AS 7.2.0.Final-redhat-8 "Janus" starting 
ERROR [org.jboss.msc.service.fail] MSC000001: Failed to start service jboss.as: org.jboss.msc.service.StartException in service jboss.as: Failed to start service 
    at org.jboss.msc.service.ServiceControllerImpl$StartTask.run(ServiceControllerImpl.java:1904) [jboss-msc-1.2.0.Final.jar:1.2.0.Final] 
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) [rt.jar:1.7.0_55] 
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) [rt.jar:1.7.0_55] 
    at java.lang.Thread.run(Thread.java:745) [rt.jar:1.7.0_55] 
Caused by: java.lang.NoClassDefFoundError: org/jboss/msc/service/ServiceListener$Inheritance 
    at org.jboss.as.server.ApplicationServerService.start(ApplicationServerService.java:128) [wildfly-server-8.0.0.Final.jar:8.0.0.Final] 
    at org.jboss.msc.service.ServiceControllerImpl$StartTask.startService(ServiceControllerImpl.java:1948) [jboss-msc-1.2.0.Final.jar:1.2.0.Final] 
    at org.jboss.msc.service.ServiceControllerImpl$StartTask.run(ServiceControllerImpl.java:1881) [jboss-msc-1.2.0.Final.jar:1.2.0.Final] 
    ... 3 more 
Caused by: java.lang.ClassNotFoundException: org.jboss.msc.service.ServiceListener$Inheritance 
    at java.net.URLClassLoader$1.run(URLClassLoader.java:366) [rt.jar:1.7.0_55] 
    at java.net.URLClassLoader$1.run(URLClassLoader.java:355) [rt.jar:1.7.0_55] 
    at java.security.AccessController.doPrivileged(Native Method) [rt.jar:1.7.0_55] 
    at java.net.URLClassLoader.findClass(URLClassLoader.java:354) [rt.jar:1.7.0_55] 
    at java.lang.ClassLoader.loadClass(ClassLoader.java:425) [rt.jar:1.7.0_55] 
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308) [rt.jar:1.7.0_55] 
    at java.lang.ClassLoader.loadClass(ClassLoader.java:358) [rt.jar:1.7.0_55] 
    at org.jboss.modules.ConcurrentClassLoader.performLoadClass(ConcurrentClassLoader.java:370) [jboss-modules-1.3.0.Final.jar:1.3.0.Final] 
    at org.jboss.modules.ConcurrentClassLoader.loadClass(ConcurrentClassLoader.java:118) [jboss-modules-1.3.0.Final.jar:1.3.0.Final] 
    ... 6 more 

MSC000001: Failed to start %s 
org.jboss.msc.service.StartException in service jboss.as: Failed to start service 
    at org.jboss.msc.service.ServiceControllerImpl$StartTask.run(ServiceControllerImpl.java:1904) 
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) 
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) 
    at java.lang.Thread.run(Thread.java:745) 
Caused by: java.lang.NoClassDefFoundError: org/jboss/msc/service/ServiceListener$Inheritance 
    at org.jboss.as.server.ApplicationServerService.start(ApplicationServerService.java:128) 
    at org.jboss.msc.service.ServiceControllerImpl$StartTask.startService(ServiceControllerImpl.java:1948) 
    at org.jboss.msc.service.ServiceControllerImpl$StartTask.run(ServiceControllerImpl.java:1881) 
    ... 3 more 
Caused by: java.lang.ClassNotFoundException: org.jboss.msc.service.ServiceListener$Inheritance 
    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) 
    Apr 15, 2014 6:25:21 PM org.jboss.msc.service.ServiceControllerImpl$StartTask startFailed 
    ERROR: MSC000001: Failed to start %s 
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308) 
    at java.lang.ClassLoader.loadClass(ClassLoader.java:358) 
    at org.jboss.modules.ConcurrentClassLoader.performLoadClass(ConcurrentClassLoader.java:370) 
    org.jboss.msc.service.StartException in service jboss.as: Failed to start service 
    at org.jboss.modules.ConcurrentClassLoader.loadClass(ConcurrentClassLoader.java:118) 
    ... 6 more 
     at org.jboss.msc.service.ServiceControllerImpl$StartTask.run(ServiceControllerImpl.java:1904) 
     at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) 
     at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) 
     at java.lang.Thread.run(Thread.java:745) 
    Caused by: java.lang.NoClassDefFoundError: org/jboss/msc/service/ServiceListener$Inheritance 
     at org.jboss.as.server.ApplicationServerService.start(ApplicationServerService.java:128) 
     at org.jboss.msc.service.ServiceControllerImpl$StartTask.startService(ServiceControllerImpl.java:1948) 
     at org.jboss.msc.service.ServiceControllerImpl$StartTask.run(ServiceControllerImpl.java:1881) 
     ... 3 more 
    Caused by: java.lang.ClassNotFoundException: org.jboss.msc.service.ServiceListener$Inheritance 
     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 org.jboss.modules.ConcurrentClassLoader.performLoadClass(ConcurrentClassLoader.java:370) 
     at org.jboss.modules.ConcurrentClassLoader.loadClass(ConcurrentClassLoader.java:118) 
     ... 6 more 

我尝试添加这种依赖性

testRuntime 'org.jboss.msc:jboss-msc:1.2.2.Final' 

但它并没有在所有帮助:然而,当我切换到WildFly 8嵌入与此控制台输出测试失败。

那么,我在这里错过了什么?我如何使用WildFly 8嵌入测试通行证?

非常感谢。

回答

-1

你不得不安装了JBoss记录

在gradle这个

test { 
    systemProperty 'java.util.logging.manager', 'org.jboss.logmanager.LogManager' 
} 
相关问题