ClassCastException com DocumentBuilderFactoryImpl e DocumentBuilderFactory

5 respostas
Luiz_Gustavo

Olá galera!

Seguinte, ao tentar fazer o parse de um XML estou com o seguinte erro:

java.lang.ClassCastException: org.apache.xerces.jaxp.DocumentBuilderFactoryImpl cannot be cast to javax.xml.parsers.DocumentBuilderFactory

Pela dica que encontrei neste fórum eu não deveria ter arquivos jar em meu classpath relativos a xml, como xml-apis.jar ,xmlbeans.jar, etc.

Acontece que o próprio Maven incluiu os arquivos jar xml-apis.jar ,xmlbeans.jar como dependênicas do meu projeto.

Alguma dica de como contornar esse problema?

[]'s

5 Respostas

Luiz_Gustavo

Bom, acabei de alterar o pom para excluir as dependências para estes arquivos jar (que descobri serem do jasperreports):

<dependency>
	<groupId>net.sf.jasperreports</groupId>
	<artifactId>jasperreports</artifactId>
	<version>4.7.1</version>
	<scope>compile</scope>
	
	<exclusions>
		<exclusion>
		  <groupId>xml-apis</groupId> 
		  <artifactId>xml-apis</artifactId>
		</exclusion>
		<exclusion>
			<groupId>org.apache.xmlbeans</groupId>
			<artifactId>xmlbeans</artifactId>
		</exclusion>
	</exclusions>

</dependency>

Pelo menos os arquivos que eu havia encontrado, e que poderiam ser os causadores do problema, foram removidos.

Estou fazendo um deploy aqui pra ver se funciona.

[]'s

Luiz_Gustavo

Galera, só pra confirmar que deu certo!

Só não sei ainda qual será o efeito colateral de ter removido tais dependências. Isso fica para outra hora =)

E

Geralmente o xml-apis.jar é “embutido” no Servidor de aplicação, talvez com outro nome depende da particularidade do AppServer, desta forma se você tiver algum no classpah do projeto pode causar esse tipo de erro.

Luiz_Gustavo

Então ErickMacedo,

eu acredito que o conflito era justamente entre a versão que está no JBoss e a que estava na aplicação. Depois que eu removi da aplicação funcionou. =D

[]

E

já tive esse mesmo problema com o WebSphere…

Obs: fui reparar agora, trabalhei com você na Transformare em 2010…

Criado 19 de outubro de 2012
Ultima resposta 20 de out. de 2012
Respostas 5
Participantes 2