Recentemente escrevi sobre qualidade de código apresentando uma ferramenta de análise de código chamada Sonar. Esta ferramenta verifica vários aspectos do código fonte, entre eles a complexidade do código. Códigos complexos possuem muitos caminhos de execução e, além de ter uma chance maior de serem origens de bugs, são mais difíceis de ler. O ideal…
Tag: java
java.net.UnknownHostException
Esta exceção geralmente ocorre quando o acesso a internet é feito por meio de um proxy interno. Neste caso, é necessário passar como argumento para a VM a configuração do proxy. Exemplo: -Dhttp.proxyHost=proxy -Dhttp.proxyPort=8080 -Dhttps.proxyHost=proxy -Dhttps.proxyPort=8001
Como criar um projeto EJB com Eclipse
Ao estudar EJBs, vemos muita teoria, muitos conceitos, muitos diagramas… E na hora de colocar a mão na massa é uma confusão. Criei este tutorial para aqueles que passaram por toda a teoria e estão engatinhando com EJBs. O tutorial mostra passo a passo a implementação de um projeto EJB e a utilização de um…
EJB: Stateless Session Bean
O diagrama de classes abaixo ilustra a modelagem de um EJB Stateless para um hipotético serviço de criptografia. Criptografia por si só é um tópico muito mais complexo do que sugere este diagrama, assim com EJBs, mas o foco aqui é mostrar como os componentes EJB se relacionam. A interface EncryptionCommonBusiness serve como um contrato…
Padrões de Código Java do Google e Oracle
O Google Java Style, ou Estilo de Código do Google, é um guia de referência de como organizar o código fonte dentro do Google, ou seja, os princípios que todos os desenvolvedores do Google seguem. O documento é muito interessante e fornece uma ideia de como organizar seu código em um padrão de alto nível,…
Monitoramento de performance Java com VisualVM
É importante ver e entender os números e estatísticas de performance de aplicações e existem inúmeras ferramentas para monitorar aplicações para registrar seu comportamento ao longo da execução. A plataforma Java dispõe da ferramenta VisualVM, pouco conhecida, mas muito poderosa e útil. O melhor de tudo de tudo é que esta ferramenta faz parte da…
Nginx + Tomcat 7 + Java: Cluster com replicação de sessão
No post Load balancing: simulando um cluster com NGinx e Tomcat em localhost foi mostrado como configurar o NGinx para fazer o balanceamento de carga de três instâncias do Tomcat rodando na mesma máquina. Imagine que tenhamos uma aplicação que faz uso de sessão para armazenar dados do usuário e de navegação. Como essa aplicação…
[Resolvido] SEVERE: Request[/url] does not contain handler parameter named ‘action’
Recentemente tive que fazer manutenção em um sistema bem antigo, código de 10 anos atrás, J2EE 1.4 e Struts 1. Tive o seguinte erro ao acessar algumas páginas novas que havia desenvolvido: SEVERE: Request[/url] does not contain handler parameter named ‘action’ Depois de muito penar pela internet em vários fóruns e não encontrar solução, encontrei…
Pesquisa em banco de dados relacional utilizando REST com Apache Solr
A edição de setembro/outubro de 2013 da revista MundoJ traz um artigo meu que trata da indexação de dados de um banco de dados relacional em um servidor de busca para serem acessados por meio de REST. [Artigo em PDF] O artigo apresenta o Apache Solr, um servidor de buscas que tem em seu core a…
Kata e TDD: um exemplo prático
Nas artes marciais, um kata é um conjunto preciso de movimentos que simula um lado de um combate. O bjetivo de um kata é atingir a perfeição, é treinar a mente e o corpo para agir em uma situação real particular, de forma que os movimentos perfeitos se tornem automáticos e esteja a disposição quando…