desenvolvimento

Hotdeploy no tomcat

Voltei a acreditar no hotdeploy do tomcat.

O tomcat tem o recurso de deploy de aplicativos com o tomcat rodando. Isso economiza muito tempo de desenvolvimento, pois o processo de ligar o tomcat pode demorar bastante tempo. Acontece que quando algo de errado acontece vários problemas imprevisíveis se propagam, consumindo tempo de desenvolvimento (a toa). É por este motivo que a maioria dos desenvolvedores java que conheço sempre desligam o tomcat para realizar um novo deploy. Além de chato é ineficiente.

Descobri que este problema é mais comum no Windows. Vou explicar o porquê. Quando um deploy é feito com um arquivo war, o seu conteúdo é descompactado na pasta webapps, e um arquivo de configurações xml é criado na pasta conf do tomcat. O processo de undeploy apaga o xml, o arquivo war e toda a pasta do context. Até aí tudo bem.

É comum, também, abrir com um navegador de pastas e arquivos, como o Windows Explorer, a pasta do contexto que se está desenvolvendo para verificar se está tudo correto, ou mesmo para atualizar arquivos jsp, por exemplo. Aí que está o problema. Se no Windows um arquivo fica aberto em um notepad, por exemplo, toda a estrutura de diretórios fica presa pelo processo do notepad, e o tomcat falha ao tentar efetuar o undeploy. Parte dos arquivos são apagados, e outros tantos ficam para trás.

Depois de um processo de undeploy falho como este o context não estará mais disponível para consulta no seu browser, mas se o mesmo context for reinstalado com um deploy, é bem provável que problemas estranhos surjam. Conheço gente que faz um undeploy no tomcat, um clean no projeto do eclipse, outro clean no ant, fecha o tomcat, abre o tomcat e finalmente faz o deploy. Outros, menos superticioso se contentam em fechar e abrir o tomcat. Chamo este processo, tanto o completo quanto o resumido, de macumbate. Uma espécie de padrão no desenvolvimento java para web.

No meu linux eu não tenho este problema. Dificilmente fecho o tomcat, e quando o faço é porque preciso atualizar alguma biblioteca do common/lib ou porque já fiz algumas dezenas de deploy e ocorre um problema de espaço em memória (PermGen).

Discussão sobre padrão Struts

No guj está rolando uma discussão sobre o padrão de desenvolvimento web com struts 1.

http://www.guj.com.br/posts/list/58008.java

Eu não gosto do Struts 1 porque vejo todo mundo confuso com os conceitos dele, e simplesmente ignorando a maior parte das automatizações do framework.

Infelizmente ainda não vejo um novo padrão despontar no lugar do Struts 1. Como “os grandes” devem apontar para o Struts 2 ou jsf, estou estudando para entender melhor estes dois frameworks.

Fórum e Opine!

Foram abertos na MelOnLine mais dois serviços: o Fórum de discussões e a homepage de pesquisas Opine!. Ambos projetos usam a tecnologia Cold Fusion. No Fórum é possível escolher o assunto de seu interesse e ler livremente as mensagens previamente postada por outros usuários. Para acrescentar uma nova mensagem basta escrevê-la num e-form. A mensagem é atualizada imediatamente sem nenhuma espécie de censura, garantindo assim um espaço livre e democrático. A homepage Opine! traz uma série de questões polemicas e divertidas. As duas homepages ainda estão em fase de teste e principalmente o fórum deve sofrer algumas alterações, mas o espaço já está aberto à discussões.

Phill Melon’s Room

Vocês já viram como está ficando minha nova homepage? A Phill Melon’s Room vai ter um clima clean, com informações sobre meus trabalhos, meus hobbies e fotos. Andei dando uma rastreada aqui em casa e já encontrei fotos bem antigas. Tem fotos dos meus irmãos durante infância, meus parentes, minhas fotos quando bebê e depois um pouco mais crescidinho. É um álbum de fotos online.