Conflito de jars no jboss 5.1

Bom dia pessoal…

to com um problema, to fazendo o deploy de uma aplicação no

jboss 5.1 e um jar que minha aplicação usa(2.2) é mais novo do que

o utilizado pelo jboss(1.0).

Eu preciso que o jboss use o jar da minha aplicação e não o seu nativo,

o problema é que não posso remover o jar nativo do jboss :frowning:

Alguém tem alguma sugestão?

Isole o classloader da aplicação com o arquivo /WEB-INF/jboss-web.xml (assumindo que você esteja usando um war):

[quote]<jboss-web>
<class-loading java2ClassLoadingCompliance=“false”>
<loader-repository>
seam.jboss.org:loader=IDENTIFICADOR-QUALQUER (geralmente o nome do war)
<loader-repository-config>java2ParentDelegation=false</loader-repository-config>
</loader-repository>
</class-loading>
</jboss-web>
[/quote]

[quote=Ataxexe]Isole o classloader da aplicação com o arquivo /WEB-INF/jboss-web.xml (assumindo que você esteja usando um war):

[quote]<jboss-web>
<class-loading java2ClassLoadingCompliance=“false”>
<loader-repository>
seam.jboss.org:loader=IDENTIFICADOR-QUALQUER (geralmente o nome do war)
<loader-repository-config>java2ParentDelegation=false</loader-repository-config>
</loader-repository>
</class-loading>
</jboss-web>
[/quote][/quote]

Uma dúvida, o seam.jboss.org também pode ser qualquer coisa?

obrigado pela resposta Ataxexe :slight_smile:

Implementei o XML e o deploy foi feito sem erros… porém

no entanto estou tomando o erro

e pelo que pesquisei esse erro é por que o jboss ainda está olhando os seus jars nativos

Na verdade acredito que possa desconsiderar essa linha, eu acabei copiando o xml de um war que usava o JBoss Seam.

Outro exemplo seria assim (usando o arquivo /WEB-INF/jboss-classloading.xml):

&lt;classloading xmlns="urn:jboss:classloading:1.0" parent-first="false" domain="DefaultDomain" top-level-classloader="true" parent-domain="Ignored" export-all="NON_EMPTY" import-all="true"&gt; &lt;/classloading&gt;

Você pode dar uma olhada sobre isso aqui.

[quote=carolino]Implementei o XML e o deploy foi feito sem erros… porém

no entanto estou tomando o erro

e pelo que pesquisei esse erro é por que o jboss ainda está olhando os seus jars nativos[/quote]

Geralmente acontece o seguinte: se você tem um jar na sua aplicação onde uma classe dependa de um jar que está no JBoss, as duas classes serão carregadas por classloaders diferentes, podendo dar erros do tipo ClassCastException e até mesmo algum NoClassDefFoundError. Você precisa checar todas as suas dependências.

Outros jars devem até ser desconsiderados quando você faz o deploy no JBoss (geralmente as APIs de xml). Quando eu usava o hibernate com o maven, acabava tendo que excluir algumas coisas porque não podia usar o que vinha no JBoss:

&lt;dependency&gt; &lt;groupId&gt;org.hibernate&lt;/groupId&gt; &lt;artifactId&gt;hibernate-core&lt;/artifactId&gt; &lt;version&gt;${hibernate.version}&lt;/version&gt; &lt;exclusions&gt; &lt;exclusion&gt; &lt;groupId&gt;xml-apis&lt;/groupId&gt; &lt;artifactId&gt;xml-apis&lt;/artifactId&gt; &lt;/exclusion&gt; &lt;exclusion&gt; &lt;artifactId&gt;jta&lt;/artifactId&gt; &lt;groupId&gt;javax.transaction&lt;/groupId&gt; &lt;/exclusion&gt; &lt;exclusion&gt; &lt;artifactId&gt;dom4j&lt;/artifactId&gt; &lt;groupId&gt;dom4j&lt;/groupId&gt; &lt;/exclusion&gt; &lt;/exclusions&gt; &lt;/dependency&gt;

[OFF]Oba!!! Milésima mensagem :slight_smile:

No meu caso é isso mesmo que acontece…

tenho uma classe dentro do jar jsxb que depende de uma classe do jar jaxb-impl

mas os dois jars estão dentro da aplicação, e o que parece é que ele

está tentando buscar a classe no jar do jboss…

parabéns pelo milésimo post hehehe

Valeu!

Talvez você precise colocar mais algum jar na sua aplicação pra evitar esse comportamento. Esses problemas de classloader no JBoss são mesmo muito chatos de resolver.

Tem mais alguns links aqui que podem te ajudar:

https://community.jboss.org/wiki/ClassLoadingOverview
https://community.jboss.org/wiki/ClassLoadingConfiguration
https://community.jboss.org/wiki/JBossClassLoadingUseCases

Mesmo configurando os XMLs na pasta WEB-INF da aplicação ainda está acontecendo
conflito

Alguma sugestão adicional? hehe

To tomando uma surra aqui já faz dois dias rsrs

O jars que estou tendo problema, são os jars do jaxb que é uma API para geração de

XML. Lendo alguns forums de pessoas com o mesmo problema um cara falou que

o jboss 5.1 protege alguns jars nativos de maneira que não deixa nenhuma aplicação

sobrescreve-los. Triste se for verdade rsrs

To tentando migrar para o jboss 7 que tem a versão 2.2 do jar que preciso

Ataxexe

Migrei para o Jboss 7.1 e agora to tendo problema com outra dependencia…

você sabe se no jboss 7.1 da pra passar algum xml de controle de classpaph?

Caused by: org.jboss.as.server.deployment.DeploymentUnitProcessingException: JBAS011232: Only one JAX-RS Application Class allowed.  com.
sun.jersey.api.core.ScanningResourceConfig com.sun.jersey.api.core.servlet.WebAppResourceConfig com.sun.jersey.api.core.ClasspathResource

tava tendando o mostrado nesse link: https://community.jboss.org/message/642580#642580#642580

Se alguém tiver alguma idéia…

Esse ultimo problema consegui resolver…

Achei um forum em que o cara dava uma dica para adicionar as seguintes linhas

no web.xml da app

&lt;context-param&gt;
		&lt;param-name&gt;resteasy.scan&lt;/param-name&gt;
		&lt;param-value&gt;false&lt;/param-value&gt;
	&lt;/context-param&gt;
	&lt;context-param&gt;
		&lt;param-name&gt;resteasy.scan.providers&lt;/param-name&gt;
		&lt;param-value&gt;false&lt;/param-value&gt;
	&lt;/context-param&gt;
	&lt;context-param&gt;
		&lt;param-name&gt;resteasy.scan.resources&lt;/param-name&gt;
		&lt;param-value&gt;false&lt;/param-value&gt;
	&lt;/context-param&gt;

Evitando assim que existem conflitos do jersey