【问题标题】:Error while using JSFUnit/HtmlUnit/CSSParser使用 JSFUnit/HtmlUnit/CSSParser 时出错
【发布时间】:2010-04-20 18:02:19
【问题描述】:

我们刚刚将我们的项目转换为使用 Maven 进行构建和依赖管理,转换后我在尝试在我的项目中运行任何 JSFUnit 测试时遇到以下异常。

异常 class=[java.lang.UnsupportedOperationException]
com.gargoylesoftware.htmlunit.ScriptException:尚不支持 CSSRule com.steadystate.css.dom.CSSCharsetRuleImpl。
    在 com.gargoylesoftware.htmlunit.javascript.JavaScriptEngine$HtmlUnitContextAction.run(JavaScriptEngine.java:527)
    在 net.sourceforge.htmlunit.corejs.javascript.Context.call(Context.java:537)
    ...

JSFUnit 的所有依赖项和 JAR 都是使用 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 测试。我能够通过使用某人塞进我们的 WEB-INF/lib 目录(在 Maven 转换之前)的 ss_css2.jar 文件来半解决这个问题。我希望知道是否还有其他方法可以修复 Maven 中的依赖项,而不是自己管理一些依赖项。

【问题讨论】:

    标签: maven-2 jsf richfaces htmlunit jsfunit


    【解决方案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 做到了:)

    【讨论】:

    • @brianf 一定有什么不同。我不知道你是否知道依赖插件,但你可以用mvn dependency:tree 打印依赖树(包括传递依赖)。调试类路径非常有帮助(在 m2eclipse 中的“依赖层次”选项卡下也可用)。
    • 虽然确保所有版本都相同并没有解决我的问题,但我确实尝试将 cssparser 依赖的版本降低到 0.9.4(以前是 0.9.5),这似乎已经解决了我的问题。
    猜你喜欢
    • 1970-01-01
    • 2014-02-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-24
    • 1970-01-01
    • 2013-12-16
    • 1970-01-01
    相关资源
    最近更新 更多