Aplicação no Jboss não encherga classe de um jar

2 respostas
toredobud

Salve pessoal,

Estou com um problema e não consigo resolver a dois dias, tenho uma aplicação rodando no jboss, dentro do projeto utilizo uma classe de pesquisa que está em um jar e este jar está no classpath do projeto, enfim a exception que ocorre é a ClassNotFoundException e o mais estranho é que isso só acontece quando tento utilizar a classe de pesquisa na aplicação que roda no Jboss, fiz uma classe de teste com o seguinte trecho de código:

URL url[] = new URL[1];
url[0] = new URL("jar:file:/C:/myDirectory/myJar.jar!/");
URLClassLoader loader = new URLClassLoader(url);
Class classe = loader.loadClass("myPackage.MyClassePesquisa");
MyClassePesquisa myPesquisa = (MyClassePesquisa)classe.newInstance();

Quando executo isso fora do jboss funciona que é uma beleza !!! Mas pelo jboss não… alguém tem idéia do que pode estar acontecendo ?
Obs: o jar já está no classpath da aplicação !!!

2 Respostas

romarcio

Se o jar está no classpath da aplicação, não deveria ocorrer esse erro.
Seria interessante confirmar se no jar que está no classpath, tem essa classe mesmo. Vai que na hora de montar o jar ela não foi pra lá.

Você deve estar na pasta deploy do jboss, volta uma pasta e entra na pasta work. Para o Jboss e deleta dentro da pasta work o diretório referente a sua aplicação.

toredobud

romarcio, a classe existe sim nesse pacote, tanto que quanto executo esse trecho de código por fora do jboss, eu consigo carregar a classe normalmente, já me disseram que não tem problema, mas eu acesso o método que usa a classe do jar por Reflection.

Tentei adicionar no classpath em tempo de execução… mas não deu certo. Ocorre o erro abaixo:

ERROR [STDERR] 	at br.com.telefonica.tpd.fenix.pesquisa.controller.PesquisaGenericaController.retornaResultadoDaPesquisa(PesquisaGenericaController.java:366)
	at br.com.telefonica.tpd.fenix.pesquisa.controller.PesquisaGenericaController.getList(PesquisaGenericaController.java:316)
	at br.com.telefonica.tpd.fenix.pesquisa.controller.PesquisaGenericaController.execute(PesquisaGenericaController.java:131)
	at br.com.sysgen.framework.controller.SgFrontController.executeController(SgFrontController.java:444)
	at br.com.sysgen.framework.controller.SgFrontController.<init>(SgFrontController.java:151)
	at br.com.telefonica.tpd.fenix.utils.FrontUtils.callFrontController(FrontUtils.java:284)
	at IntegraFrontControllerServlet.doGet(IntegraFrontControllerServlet.java:151)
	at IntegraFrontControllerServlet.doPost(IntegraFrontControllerServlet.java:175)
	at java.lang.Thread.run(Thread.java:662)
Caused by: java.lang.NoClassDefFoundError: br/com/telefonica/ipd/fenix/itf/sap/entity/PesquisaLogradouroPorLogradouroEBO
	at br.com.telefonica.tpd.fenix.model.entity.GestaoCadastroEstacoesSAPEntity.getEstacoesListBySap(GestaoCadastroEstacoesSAPEntity.java:45)
	at br.com.telefonica.tpd.fenix.model.ManutencaoGestaoCadastroEstacoesControl.getEstacoesListBySap(ManutencaoGestaoCadastroEstacoesControl.java:505)
	... 32 more
Caused by: java.lang.ClassNotFoundException: No ClassLoaders found for: br.com.telefonica.ipd.fenix.itf.sap.entity.PesquisaLogradouroPorLogradouroEBO
	at java.lang.ClassLoader.loadClass(ClassLoader.java:248)
Criado 23 de março de 2011
Ultima resposta 23 de mar. de 2011
Respostas 2
Participantes 2