Problemas com EJB

Pessoal estou tendo dois problemas com meu ejb:

  1. 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?

  2. 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?

Obs: Uso a versão 3.2.5 do jboss

Obrigada pela atenção

Oi,

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?

Obrigada por responder.
Escrevi no log através do log4j em um método que é chamado por aplicações web. Coloquei assim:

Logger log = Logger.getLogger(MenuEJB.class);
try {
BasicConfigurator.configure();
log.setLevel(Level.INFO);
Appender fileAppender = new FileAppender(new PatternLayout(PatternLayout.TTCC_CONVERSION_PATTERN), /home/jboss/teste.log");
log.addAppender(fileAppender);
log.info(“Iniciando”);
} catch(IOException io) {
log.info("Erro IOException: "+io);
}

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.

Obrigada mais uma vez por responder.

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

Iniciando
Iniciando
Autenticando
Autenticando

Iniciando
Iniciando
Iniciando
Autenticando
Autenticando
Autenticando

O que será?

Posso te adicionar ao meu msn? Como vc chama?

1 - Veja a documentação: http://wiki.jboss.org/wiki/Wiki.jsp?page=Logging

2 - Cole seu EJB todo (entre tags [code] ).

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=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.