Archive

Posts Tagged ‘jboss’

JBoss não inicia utilizando o plugin do Eclipse – TimeOut

Mais uma dica na categoria problemas do cotidiado.

Geralmente ao utilizar o plugin de inicialização do Servidores de Aplicação dentro do Eclipse acontece um erro de TimeOut, esse erro pode ocorrer por alguns motivos, mas os pricipais são:

– Ao inciar o servidor de aplicação é necessário iniciar todas as aplicações que estão deployed dentro dele e isso requer, as vezes, um tempo maior que o configurado dentro do plugin. Isso pode gerar o erro de timeout.

Solução: Nesse caso configure a aba Timeouts “Start in seconds” para um valor maior.

– Ao iniciar o servidor JBoss embora não exiba nenhum erro de Deploy ele não inicia e após um período o eclipse exibe uma excessão de Timeout.

Solução: Esse erro geralmente ocorre quando o Tomcat interno utilizado no JBoss está utilizando um porta diferente da configurada dentro do Eclipse. Para equalizar as portas modifique ou equalize com a porta configurada no arquivo “\jboss-4.0.5.GA\server\default\deploy\jbossweb-tomcat55.sar\server.xml” HTTP port.

Categorias:dicas Tags:

JBoss Server – Port 1099 Already Bound Error.

Vou começar a postar sobre alguns erros comuns que ocorrem no cotidiano para ajudar a todos a solucionar esses problemas operacionais.

Se ao tentar inicializar o Servidor de aplicação JBoss você pegar um erro dizendo “Port 1099 already bound”, isso significa que a porta já está em uso por outra aplicação. Normalmente as aplicações que usam essa porta podem ser o Firefox ou MSN/Yahoo Messenger. Você pode parar essas aplicações e tentar iniciar o Servidor novamente. Se obtiver sucesso você pode iniciar novamente essas aplicações, pois elas sabem utilizar portas alternativas para inicializar os serviços.

Um comando interessante no windows para saber qual aplicação utiliza qual porta, utilize o DOS e rode o comando.

netstat -b

Outro motivo para gerar o problema é o Servidor já estar iniciado ou ter algum outro serviço utilizando essa porta. Nesse caso você pode alterar a porta no arquivo “\jboss-4.0.5.GA\server\ports-bindings.xml”.

Espero ter ajudado.

Categorias:dicas Tags:

Cobertura de testes unitários com Emma

Os testes unitários facilitam a integração continua em uma aplicação! Isso muitos já sabem, mas o que talvez possa estar passando a despercebido em algumas empresas hoje, é a eficiência destes testes unitários, que reflete diretamente na qualidade da aplicação.

Na tentativa de melhorar a qualidade de testes unitários percebi que não bastava apenas visualmente verificar classe por classe, sua utilização e tentar cobrir o máximo de possibilidades, verifiquei que isso seria impossível ser alcançado utilizando apenas o bom senso. Principalmente quando são projetos muito grandes com muitas pessoas desenvolvendo testes e artefatos do software.

Um boa prática para os projetos foi implantada recentemente em um dos projetos que eu trabalho, a ferramenta Emma, bem como outras ferramentas como por exemplo: Cobertura e CodeCover, que tem como objetivo gerar relatórios sobre o código que está sendo utilizado no momento de execução dos testes unitários. Com isso eu pude verificar com exatidão quais classes, métodos, blocos e linhas do meu código não estão sendo utilizados pelos testes. Permitindo então construir novos testes para essa parte da aplicação que até então não está sendo testada, mas deveria.

A ferramenta Emma que foi implantada em um sistema EJB 2.0 e foi publicada no Jboss 3.2.7, é muito fácil de utilizar, vou descrever abaixo os passos para gerar um relatório.

Copie o arquivo “emma.jar” quem vem dentro “emma-*****-lib.zip”, é pode ser baixado no site http://emma.sourceforge.net/, para dentro do diretório do Servidor da Aplicação, no meu caso “/java/jboss-3.2.7/server/default/lib”.

É necessário gerar a versão da sua aplicação publicada com as classes instrumentadas, o que significa que suas classes originais serão modificadas para que possa ser possível o Emma verificar o que do código está sendo utilizado. Para gerara as classes instrumentadas utilize o comando “java –cp emma.jar emma instr -d output -ip ****.jar” com isso será gerado o arquivo “coverage.em” e a nova versão instrumentada do “****.jar”. Agora basta substituir o JAR publicado no seu Servidor de Aplicação por esse novo que foi instrumentado e iniciar o servidor.


Rode os testes normalmente e ao terminar desligue o Servidor de Aplicação. Com isso o Emma utilizando suas classes instrumentadas já gerou o arquivo de onde se origina o relatório no diretório aonde está sendo executado o Servidor, no meu caso “C:\java\jboss-3.2.7\bin\ coverage.ec”.
 Para concluir e gerar o relatório basta rodar o comando: 
C:\java\jboss-3.2.7\bin>java -cp emma.jar emma report -r html -in coverage.em -in C:\java\jboss-3.2.7\bin\coverage.ec, lembrando que o arquivo que foi gerado no momento da instrumentação “coverage.em”, deve estar no mesmo diretório que o “coverage.ec” ou descrever o caminho para esse arquivo. O relatório será gerado em “coverage\index.html”, existem ainda a possibilidade de gerar esse relatório em Plain Text ou XML.


Uma outra forma de utilização do Emma é executar a instrumentação e processamento do relatório através do Ant, abaixo segue o exemplo de instrumentação:

<emma>
   <instr destdir=“${emma.bin.dir}” mode=“fullcopy” merge=“false” metadatafile=“${emma.metadado.dir}/coverage.em” instrpath=“${bin.dir}”/>
</emma>

É isso, espero ter ajudado!

Categorias:java Tags:, , ,