Quando tento utilzar uma API (com todos os módulos incluidos no classpath) em uma aplicação java normal, todos os métodos funcionam corretamente, fazendo todas as operações normalmente. Porém quando eu tento fazer essa aplicação funcionar em um sistema JSF, tenho esse error:
Acabei vendo que o problema é na utilização do servidor de aplicação JBOSS, onde o deploy das classes é diferente de uma aplicação java normal. A única coisa que sei é que eu preciso colocar alguns .jars nas pastas /lib do Jboss, porém não sei quais classes e nem onde coloca-las exatamente.
JBoss já disponibiliza as libs para o JSF, vc gostaria de utilizar as libs do JBoss ou as da sua aplicação?
silver00
Olá silver00,
Qual a versão do JBoss?
A versão do JBOSS é a 5.1.0.GA, pois a API funciona melhor com esta versão do que com as mais recentes.
Outra coisa,
JBoss já disponibiliza as libs para o JSF, vc gostaria de utilizar as libs do JBoss ou as da sua aplicação?
O que eu farei é subir a API pelo jboss e usar a minha aplicação para utilizar de seus serviços, então acho que será as libs da própia aplicação.
jmag
Esse erro ai é bem “genérico” digamos assim, mas vamos tentar algumas coisas já que citou o JSF.
Se você possui uma aplicação .war, com a implementação do JSF no diretório WEB-INF/lib, deve-se especificar o parâmetro abaixo, para ?dizer? ao JBoss que você quer usar a implementação que está na sua aplicação e não a que é disponibilizada pelo Servidor (JBoss). Esse parâmetro deve ser adicionado ao web.xml, da sua aplicação.
Realize o deploy novamente e verifique se funciona.
Mas se não funcionar vamos tentar outras abordagens.
Abs
silver00
Esse erro ai é bem “genérico” digamos assim, mas vamos tentar algumas coisas já que citou o JSF.
Se você possui uma aplicação .war, com a implementação do JSF no diretório WEB-INF/lib, deve-se especificar o parâmetro abaixo, para ?dizer? ao JBoss que você quer usar a implementação que está na sua aplicação e não a que é disponibilizada pelo Servidor (JBoss). Esse parâmetro deve ser adicionado ao web.xml, da sua aplicação.
Tentei fazer mas não deu certo (eu fiz na pasta da minha aplicação que esta no C:\ e não do JBOSS, e é ai que surge outra dúvida minha). Quando fazemos deploy de nossa aplicação, toda ela será disponibilizada no srvidor de aplicação certo? pelo menos foi assim que aprendi). Qual seria a diferença de pedir a aplicação puxar as libs da propria aplicação? Não seriam as mesmas que serão disponibilizadas no deploy?. Quando eu faço a importação pelo classpath, incluindo todas as jars, todas as classes que preciso são reconhecidas, mas pelo que vi, preciso fazer algo mais, segue a estrutura da minha aplicação.
C:\Projeto\MinhaAplicação
C:\Usuários\MyUser\workspace\ejbca(essa é a API)
C:\Usuários\MyUser\workspace\jboss-5.1.0.GA
silver00
Nada?
jmag
Olá silver00,
desculpe a demora em responder estou finalizando um projeto no trampo e tá complicado.
Quando fazemos deploy de nossa aplicação, toda ela será disponibilizada no srvidor de aplicação certo? pelo menos foi assim que aprendi). Qual seria a diferença de pedir a aplicação puxar as libs da propria aplicação? Qual seria a diferença de pedir a aplicação puxar as libs da propria aplicação? Não seriam as mesmas que serão disponibilizadas no deploy?
A diferença está na ordem em que elas serão carregadas. Acho que vc ja deve ter ouvido falar de Hierarquia de classloaders. É um assunto bem extenso e aconselho você a ler fortemente.
Quais libs devem ser carregadas no JBoss? Eu nunca havia visto essa API antes. Eu gostaria de fazer uns testes aqui.
É essa API mesmo. As libs que serão carreagadas serão todas em dist e em modules\dist. Porém pra subir essa API, é bem dor de cabeça, qualquer dificuldade eu posso dar uma mão pra ti, pois apanhei muitio pra levantar ela.
Eu já tinha ouvido falar de classloaders, mas bem pouco. Vou começar a minha leitura nos links que vc aconselhou.
jmag
Pow legal… eu achei bem interessante essa API rsrs
Blz eu vou testar também na parte da tarde e se precisar de ajuda eu grito rsrs…
Abs
silver00
jmag:
Pow legal… eu achei bem interessante essa API rsrs
Blz eu vou testar também na parte da tarde e se precisar de ajuda eu grito rsrs…
Abs
Cara eu li sobre os classloaders, até que entendi bem, porém quando eu coloco as classes nos lugares indicados para fazer o carregamento junto com o jboss, simplesmente não funciona.
Acabei lendo que preciso fazer algumas configurações nos arquivos jboss-app.xml e jboss-web.xml. O primeiro eu não acho em lugar nenhum do jboss e o segundo existe um monte. Por final acabo estando totalmente perdido nessa parte do JSF.