2013-10-23 12 views
5

Ich habe eine Frage bezüglich SPOCK + Drools Test. Hier ist die Sache,Spock + Drools Test

KnowledgeBuilder builder = KnowledgeBuilderFactory.newKnowledgeBuilder(); 

Diese Zeile Code funktioniert absolut gut, in einem JUnit Testfall. Es ist nicht in SPOCK.

Ich erhalte die folgende Ausnahme,

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 

Was könnte das Problem sein? Geht es um Drools? Unfähig, ny head riund das Problem zu bekommen. Jede Hilfe ist sehr geschätzt :)

Update:

Ich betreibe den Test innerhalb einer Webapp w/o es entfaltet wird (wenn das Sinn macht :)). Ich habe das Glas zum Classpath hinzugefügt (nicht WEB-INF/libs) und es funktioniert jetzt gut.

+0

Was wie sieht Ihr Test aus? –

+1

Sieht eher wie ein Groovy-Problem aus als ein Spock-Problem. Vielleicht ist Groovy nicht richtig eingerichtet. Wie führen Sie den Test durch? –

+0

Ich habe gerade das benötigte Glas zum Klassenpfad hinzugefügt und sge scheint jetzt in Ordnung :) Danke für die Hilfe Jungs :) – Avinash

Antwort

1

Obwohl OP in seinem Update angibt, dass das Problem behoben wurde, indem dem Klassenpfad entsprechende Bibliotheken hinzugefügt wurden, gibt er die Bibliotheken nicht an.

Ich glaube, dieses Problem, indem Sie die folgenden auf Ihre Abhängigkeiten behoben wird

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

Ich habe das gleiche Problem, aber diese Abhängigkeiten haben mir nicht geholfen. Weiß jemand, was eine Lösung sein sollte? Ich benutze 6.1.0.Finale Version von beiden Drools und Wissen-API –

+0

@ivan In meinem Fall war die ** Drools Version 5.5-etwas **. Ich würde dir empfehlen, eine neue Frage mit Drools 6.1.0 spezifischen Tags zu posten. Verknüpfen Sie auch eine neue Frage mit der Aussage, dass es sich nicht um ein Duplikat handelt. – kaskelotti