Постепенното внедряване на Glassfish е неуспешно при включване на Selenium

Имам проект за Java EE, който е предназначен да работи на Glassfish 4.1. Искам да използвам Selenium за събиране на информация от някои уеб страници, т.е. трябва да включа Selenium в внедряването (не само за тестове).

Използвам Eclipse IDE и преди това съм използвал функцията за постепенно внедряване в Eclipse за автоматично внедряване на всички запазени промени в проекта. Но когато включих (с Maven) зависимостите за постепенно внедряване на Selenium спряха да работят. Проектът все още може да бъде разгърнат в Glassfish, но трябва да рестартирам Glassfish между всяка промяна. Получавам следната грешка в Eclipse:

Exception while loading the app : java.lang.IllegalStateException: ContainerBase.addChild: start: org.apache.catalina.LifecycleException: java.lang.RuntimeException: com.sun.faces.config.ConfigurationException: java.util.concurrent.ExecutionException: com.sun.faces.config.ConfigurationException: Unable to parse document 'bundle://136.0:1/com/sun/faces/jsf-ri-runtime.xml': DTD factory class org.apache.xerces.impl.dv.dtd.DTDDVFactoryImpl does not extend from DTDDVFactory.. Please see server.log for more details.

org.apache.xerces.impl.dv.dtd.DTDDVFactoryImpl е включен в Selenium като преходна зависимост (xerces:xercesImpl:2.11.0).

Ето моите зависимости от Maven:

<dependency>
  <groupId>org.jboss.arquillian.selenium</groupId>
  <artifactId>selenium-bom</artifactId>
  <version>2.44.0</version>
  <type>pom</type>
  <scope>import</scope>
</dependency>
<dependency>
  <groupId>org.seleniumhq.selenium</groupId>
  <artifactId>selenium-htmlunit-driver</artifactId>
</dependency>

Надявам се, че има решение за това, но след като прочетох отговора на Jens Schauder в Справяне с Xerces ад в Java/Maven? Страхувам се, че може да няма. Някой?


person user208370    schedule 08.01.2015    source източник


Отговори (1)


В момента не мога да възпроизведа проблема с прост проект, уверихте ли се, че нямате други зависимости, които импортират друга версия на xercesImpl?

Можете да опитате да поставите xercesImpl-2.11.0.jar и транзитивната зависимост xml-apis-1.4.01.jar в папката lib на вашия домейн Glassfish и да го изключите от вашите зависимости по следния начин:

<dependency>
  <groupId>org.seleniumhq.selenium</groupId>
  <artifactId>selenium-htmlunit-driver</artifactId>
  <version>2.44.0</version>
  <exclusions>
    <exclusion>
        <artifactId>xercesImpl</artifactId>
        <groupId>xerces</groupId>
    </exclusion>
  </exclusions>
</dependency>  

Вижте също:

person unwichtich    schedule 08.01.2015