首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用带有WildFly 8.0.0嵌入式的Arquillian?

如何使用带有WildFly 8.0.0嵌入式的Arquillian?
EN

Stack Overflow用户
提问于 2014-04-16 01:29:52
回答 1查看 1.1K关注 0票数 0

我正在调查玻璃鱼和WildFly/Jboss之间的区别,当与Arquillian一起进行测试时。整个调查是在GitHub上进行的。到目前为止,我只编写了一个简单的例子来测试CDI。下面是代码的要点:

Greeter.java

代码语言:javascript
复制
public class Greeter {
    public String greeting() {
        return "Hello, there";
    }
}

GreeterTest.groovy

代码语言:javascript
复制
class GreeterTest extends ArquillianWarBase {
    @Inject Greeter greeter
    @Test
    public void should() {
        assert greeter.greeting() == 'Hello, there'
    }
}

ArquillianWarBase.java

代码语言:javascript
复制
@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;
    }
}

我用的是格拉德尔。下面是build.gradle的依赖部分

代码语言:javascript
复制
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运行测试时,测试就通过了。但是,当我切换到嵌入此控制台输出的WildFly 8时,测试失败:

代码语言:javascript
复制
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

我试着添加这个依赖项

代码语言:javascript
复制
testRuntime 'org.jboss.msc:jboss-msc:1.2.2.Final'

但一点帮助都没有。

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

非常感谢。

EN

回答 1

Stack Overflow用户

发布于 2014-04-30 03:22:07

你必须设置jboss记录器

在格蕾中:

代码语言:javascript
复制
test {
    systemProperty 'java.util.logging.manager', 'org.jboss.logmanager.LogManager' 
}
票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23097405

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档