Já tinha um EJB funcionando. Alterei alguns pacotes, algumas classes e fiz o deploy novamente. Fazendo o teste no jboss que está instalado na minha máquina local tudo funciona perfeito. Porém na hora que eu coloquei em uma outra máquina da rede que tem o jboss, o ejb não funciona. Ele continua lendo os arquivos antigos. Então apaguei os arquivos da pasta tmp, mas mesmo assim continuo com esse problema. Como faço para atualizar o EJB?
Uma outra coisa é que dentro desse ejb eu escrevo mensagens no log atráves do log4j. Cada acesso ao ejb, loga uma mensagem para mim. Porém a medida que o ejb vai sendo invocado a mensagem vai se repetindo. Por exemplo: na primeira vez que acesso o ejb ele escreve a mensagem no log uma vez. Da segunda vez que acesso o ejb ele escreve a mensagem no log duas vezes e assim por dianter. Por que isso está acontecendo?
Dado que você tenha atualizado os arquivos de configuração para que reflitam sua nova estrutura de pacotes e classes, fazer hot deploy deveria funcionar. Como o JBoss (3.2.x | x < 6) tem problemas de hot deploy é melhor você parar o servidor e iniciar novamente. Recomendo migrar para a versão mais recente do branch 3.2.x.
Caso não funcione, verifique seus arquivos novamente.
Em que método você está escrevendo a mensagem?
Não entendi direito sua necessidade. Você quer que haja um log na primeira vez que um EJB for acessado apenas?
Na primeira vez que o ejb e o método remoto são chamados ele escreve no arquivo teste.log a frase Iniciando. Se a aplicação chamar o ejb e o método novamente, no log é escrito a frase Iniciando duas vezes e assim por diante.
Queria que o log escrevesse a frase Iniciando a cada vez que o método remoto fosse acessado (mas não repetisse a frase, como está fazendo).
O que pode estar acontecendo?
1 - Não use configuração programática, use o log4j.xml que já tem no JBoss
2 - Seu método executa uma vez, escreve a frase no log. Executa a egunda vez e escreve mais uma frase nog log (logo temos duas frases), onde exatamente você viu um problema?
Cada vez que o método for executado uma mensagem será escrita no arquivo, não é que ele escreve duas vezes, ele simplesmente vai anexando a mensagem ao final do arquivo.
Como faço para usar o log4j.xml do JBoss ? (É que estou começando a mexer com jboss, ejb por agora …)
" 2 - Seu método executa uma vez, escreve a frase no log. Executa a egunda vez e escreve mais uma frase nog log (logo temos duas frases), onde exatamente você viu um problema? "
Não foi assim que ocorreu. O método foi executado uma vez e escreveu a frase no log. Quando ele executou a segunda vez, ele escreveu mais duas vezes a mesma frase no log. Coloquei várias mensagens ao longo do método e ele foi repetindo essas frases. Ex:
log na primeira vez que executou o método:
Iniciando
Autenticando
log na segunda vez que executou o método:
Iniciando
Autenticando
Iniciando
Iniciando
Autenticando
Autenticando
log na terceira vez que executou o método:
Iniciando
Autenticando
Arrumei para usar o log4j de forma não pragmatica. Está escrevendo a mensagem no server.log e não está mais repetindo como anteriormente.
Não entendi :
" 2 - Cole seu EJB todo (entre tags [code] )."
Mais uma coisinha. No server.log está escrevendo mensagens do hibernate. Como faço para que não seja escrito os log’s do hibernate? Dei uma procurada mas não consegui tirar.
[quote=evelaine]Arrumei para usar o log4j de forma não pragmatica. Está escrevendo a mensagem no server.log e não está mais repetindo como anteriormente.
Não entendi :
" 2 - Cole seu EJB todo (entre tags [code] )."
Mais uma coisinha. No server.log está escrevendo mensagens do hibernate. Como faço para que não seja escrito os log’s do hibernate? Dei uma procurada mas não consegui tirar.
Obrigada.
[/quote]
O hibernate tb utiliza o Log4j, então no properties do log - log4j.appender.logfile.File, sete outro arquivo de log.