2013-10-23 118 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