java.lang.NoClassDefFoundError:com / sun / logging / LogDomains在运行单元测试时

时间:2014-05-02 16:58:23

标签: java unit-testing java-ee glassfish glassfish-3

我正在运行一个抛出此错误的单元测试:

java.lang.NoClassDefFoundError: com/sun/logging/LogDomains
    at com.sun.enterprise.util.ORBManager.<clinit>(ORBManager.java:93)
    at com.sun.enterprise.naming.SerialInitContextFactory.<clinit>(SerialInitContextFactory.java:65)
    at java.lang.Class.forName0(Native Method)
    at java.lang.Class.forName(Class.java:247)
    at com.sun.naming.internal.VersionHelper12.loadClass(VersionHelper12.java:46)
    at javax.naming.spi.NamingManager.getInitialContext(NamingManager.java:654)
    at javax.naming.InitialContext.getDefaultInitCtx(InitialContext.java:288)
    at javax.naming.InitialContext.init(InitialContext.java:223)
    at javax.naming.InitialContext.<init>(InitialContext.java:175)
    myCode

我的代码是:

    try {
        Context c = new InitialContext();  //line that errors
        return (T) c.lookup(name);
    } catch (NamingException ne) {
        log.error(ne.getMessage(), ne);
        throw new RuntimeException(ne);
    }

如何解决此问题?

这似乎是answer would work,除了我在评论中提到的巨大交易障碍:

  

问题在于它们似乎爆炸了一堆罐子并将它们重新包装在glassfish-embedded-all内。你最好希望你使用他们在那里打包的相同的slf4j版本,因为他们没有办法排除他们给你的东西。必须有更好的方法。

FWIW,我正在部署到Glassfish 3。

也许我需要阻止我的单元测试进入这一行。但是我感到很奇怪NoClassDefFoundError为什么会发生这种情况?

0 个答案:

没有答案