2013-10-23 100 views
5

我有一个关于SPOCK + Drools测试的问题。这里的东西,Spock + Drools测试

KnowledgeBuilder builder = KnowledgeBuilderFactory.newKnowledgeBuilder(); 

这行代码在JUnit测试用例中工作得很好。它不在SPOCK里面。

我得到下面的异常,

java.lang.NoClassDefFoundError: com/sun/tools/xjc/Options 
    at org.codehaus.groovy.util.LazyReference.getLocked(LazyReference.java:46) 
    at org.codehaus.groovy.util.LazyReference.get(LazyReference.java:33) 

Caused by: java.lang.ClassNotFoundException: com.sun.tools.xjc.Options 
    ... 3 more 

可能是什么问题呢?它与流口水有关吗?无法获得令人满意的问题。任何帮助是非常赞赏:)

更新:

我运行一个Web应用程序中测试W/O它被部署(如果让任何意义:))。我添加了jar到类路径(而不是WEB-INF/libs),现在工作正常。

+0

并测试会是什么样固定的吗? –

+1

看起来像Groovy问题,而不是Spock问题。也许Groovy没有正确设置。你如何执行测试? –

+0

只需将所需的jar添加到classpath中,sge现在看起来不错:)感谢您的帮助:) – Avinash

回答

1

虽然OP在他的更新中声明通过向classpath添加适当的库来解决问题,但他没有指定库。

我相信这个问题得到通过添加以下到你的依赖

build('com.sun.xml.bind:jaxb-xjc:2.1') 
build('com.sun.xml.bind:jaxb-impl:2.1') 
+0

我有同样的问题,但这种依赖并没有帮助我。有谁知道应该是什么解决方案?我正在使用6.1.0.Final版本的drools和知识api –

+0

@ivan在我的情况下,** Drools版本是5.5东西**。我建议你用Drools 6.1.0特定标签发布一个新问题。并且还将你的新问题链接到这个问题上,说明它不是重复的。 – kaskelotti