Problema ao carregar classes do EAR com JBoss

4 respostas
danieldestro

Galera,

To desenvolvendo um aplicação web, com Struts e EJB, empacotada em um EAR, rodando em um JBoss 3.0.3.

A aplicação funcional bem, mas com um porém. Uma classe minha de Action tenta executar um método de uma classe que está em um jar dentro de WEB-INF/lib, porém eu tenho o seguinte erro: NoClassDefFoundError: meu/pacote/ClasseASerUsada.

O estranho é que o jar com a classe está de fato no meu WAR, porém o meu action não acha a classe para usá-la.

Isso tem a ver com o fato de ser uma app empacotada em um EAR? Pois eu tenho uma outra aplicação, com a mesma estrutura e roda como um WAR, numa boa.

Valeu

4 Respostas

C

Bom dia Daniel!

Ta estranho mesmo!!

Ja li num livro do Rod Johnson em que ele fala da hierarquia de class loaders em aplication servers. Que teria a seguinte ordem na árvore:
– class loader do AS
– class loader do EJB Container
– class loader do WEB Container
E que um class loader filho pode enxergar as classes carregadas pelo pai, porém o pai não pode ver as classes carregadas pelo filho.

Comenta tb do conflito de de carregar a mesma classe em dois class loaders diferentes, ou seja,o do EJB e o de WEB.

Se vc estivesse usando a mesma classe em algum modulo EJB…talvez fosse o caso comentado acima…:confused:

Outra alternativa … pensando nesta hierarquia de class loaders … foi colocar o JAR com a classe como módulo no application.xml
A implementação de colocar o Hibernate como MBean Service no JBoss usa esta alternativa.

<module>
	   <java>libs/dom4j.jar</java>
	</module>

onde libs é uma pasta na raiz do EAR.

Aqui deu certo!!

[]`s

Adilson Chicoria Jardim

danieldestro

Eu tentei essa alternativa de jogar o JAR no EAR direto, mas não rolou.

Olha que mais estranho ainda. No meu action struts eu chamava uma classe que eu criei, chamada Util. Essa classe Util fazia a chamada à classe “desaparecida”.

Acabei tirando o código da Util e jogando no action. FUNCIONOU!

Que grande bizarrice.

C

Beleza… bizarrices mesmo!!

É o tipo de coisa que desgasta… o AS te oferece um monte de serviços porém ficar adivinhando o comportamento e sucks…

:lol:

falow

danieldestro

Acho que o problem deve ser devido a duplicação de classes.
Mas não vou perder meu tempo agora que tá funcionando. Depois eu vejo isso!

Criado 26 de novembro de 2004
Ultima resposta 29 de nov. de 2004
Respostas 4
Participantes 2