Ошибка при использовании JSFUnit / HtmlUnit / CSSParser

Мы только что преобразовали наш проект для использования Maven для сборок и управления зависимостями, и после преобразования я получаю следующее исключение при попытке запустить какие-либо тесты JSFUnit в моем проекте.

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)
    ...

Все зависимости и JAR для JSFUnit были извлечены с помощью Maven с использованием репозитория JBoss (http://repository.jboss.com/maven2/).

Мы используем в проекте следующие зависимости:

  • 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

До того, как Maven управлял зависимостями, мы могли нормально запускать наши тесты JSFUnit. Мне удалось частично исправить проблему, используя файл ss_css2.jar, который кто-то заправил в наш каталог WEB-INF / lib (до преобразования Maven). Я надеюсь узнать, есть ли еще что-нибудь, что я могу сделать, чтобы исправить зависимости в Maven, вместо того, чтобы прибегать к управлению некоторыми зависимостями самостоятельно.


person Brian Feaver    schedule 20.04.2010    source источник


Ответы (1)


Скорее всего, вы получаете «несовместимую» версию HtmlUnit или другой JAR (извлеченный транзитивно). Попробуйте использовать версию, которую вы использовали ранее, и объявите ее в разделе dependencyManagement, например.

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

Или, если вы изменили какую-либо версию, попробуйте вернуться к точному предыдущему состоянию (кстати, не могли бы вы уточнить различия между предыдущими версиями и той, которая используется в настоящее время?).

Обновление. Похоже, проблема была связана с версией артефакта cssparser. У меня не было всех необходимых элементов, чтобы понять это, но у OP есть :)

person Pascal Thivent    schedule 20.04.2010
comment
@brianf Где-то должна быть разница. Я не знаю, знаете ли вы о плагине зависимостей, но вы можете распечатать дерево зависимостей (включая транзитивные зависимости) с помощью mvn dependency:tree. Очень полезно отлаживать путь к классам (также доступно в m2eclipse на вкладке иерархии зависимостей). - person Pascal Thivent; 21.04.2010
comment
Хотя обеспечение того, чтобы все версии были одинаковыми, не решило мою проблему, я все же попытался снизить версию в зависимости от cssparser до 0.9.4 (ранее было 0.9.5), и это, похоже, решило мою проблему. - person Brian Feaver; 21.04.2010