2010-04-20 3 views
1

Nous avons récemment converti notre projet à l'utilisation de Maven pour les générations et la gestion des dépendances. Après la conversion, j'obtiens l'exception suivante en essayant d'exécuter des tests JSFUnit dans mon projet.Erreur lors de l'utilisation de JSFUnit/HtmlUnit/CSSParser

Exception class=[java.lang.UnsupportedOperationException] 
com.gargoylesoftware.htmlunit.ScriptException: CSSRule com.steadystate.css.dom.CSSCharsetRuleImpl is not yet supported. 
    at com.gargoylesoftware.htmlunit.javascript.JavaScriptEngine$HtmlUnitContextAction.run(JavaScriptEngine.java:527) 
    at net.sourceforge.htmlunit.corejs.javascript.Context.call(Context.java:537) 
    ...

Toutes les dépendances et pour JARs JSFUnit ont été tirés avec Maven en utilisant le référentiel JBoss (http://repository.jboss.com/maven2/).

Nous utilisons les dépendances suivantes dans le projet:

  • jboss-jsfunit-core 1.2.0.Final
  • jboss-jsfunit-richfaces 1.2.0.Final
  • richfaces-ui 3.3.2.GA
  • openfaces 2.0
  • JSF 1.2_12
  • Facelets 1.1.14

Avant que les dépendances ne soient gérées par Maven, nous pouvions exécuter nos tests JSFUnit très bien. J'ai été en mesure de résoudre le problème en utilisant un fichier ss_css2.jar que quelqu'un avait glissé dans notre répertoire WEB-INF/lib (d'avant la conversion Maven). J'espère voir s'il y a autre chose que je peux faire pour réparer les dépendances dans Maven plutôt que de devoir gérer moi-même certaines de ces dépendances.

Répondre

2

Vous obtiendrez très probablement une version "incompatible" de HtmlUnit ou d'un autre fichier JAR (tiré de façon transitive). Essayez avec la version que vous utilisiez précédemment et déclarez-la sous la section dependencyManagement, par exemple.

<dependencyManagement> 
    <dependencies> 
    <dependency> 
     <groupId>net.sourceforge.htmlunit</groupId> 
     <artifactId>htmlunit</artifactId> 
     <version>2.7</version><!-- put "your" version here --> 
    </dependency> 
    </dependencies> 
</dependencyManagement>  

Ou, si vous avez modifié une version, essayez de revenir à l'état précédent exact (par ailleurs, pourriez-vous clarifier les différences entre les versions précédentes et celui qui est actuellement utilisé?).

Mise à jour: Il semble que le problème était lié à la version de l'artefact cssparser. Je n'avais pas tous les éléments requis pour le comprendre mais l'OP a fait :)

+0

@brianf Il doit y avoir une différence quelque part. Je ne sais pas si vous connaissez le plugin de dépendance mais vous pouvez imprimer l'arbre de dépendances (y compris les dépendances transitives) avec 'mvn dependency: tree'. Il est très utile de déboguer le classpath (également disponible dans m2eclipse sous l'onglet "hiérarchie de dépendances"). –

+0

Tout en m'assurant que toutes les versions étaient les mêmes n'a pas résolu mon problème, j'ai essayé d'abaisser la version sur la dérive de cssparser à 0.9.4 (précédemment 0.9.5) et cela semble avoir résolu mon problème. –