Erro 550 5.7.1 Unable to relay

Hoje passei por um erro que foi difícil de diagnosticar, devido à falta de conhecimento sobre rede. Talvez essa venha sendo minha maior dificuldade, pois para um desenvolvedor não adianta estudar somente a ou as linguagens de programação que ele precisa utilizar para seu dia a dia. Para se dar bem no mercado de TI como um bom programador é preciso ir além. Estudar o que há de novo nas linguagens e quais são os frameworks que estão sendo utilizados para uma determinada solução é o básico da profissão, agora um profissional completo precisa ir além e entender exatamente o que acontece quando o usuário aperta um botão da máquina dele e como isso faz para chegar até a ponta, seja seu SGBD ou seja seu EIS.

A situação era a seguinte. Criei um novo sistema utilizando a arquitetura JEE 6, com EJB 3.1 e JSF com Prime Faces 2. O sistema estava pronto e hoje chegou o grande dia na qual o pessoal realmente vai utilizar. Já no primeiro momento: PAAAAAU!!! Comecei a checar tudo desde o início e vi que o problema estava no ponto de integração entre um sistema e outro que fiz utilizando RESTful. Analisando melhor o erro cheguei até a bendita mensagem: 550 5.7.1 Unable to relay to Address xxxxxx@xxx.xxx. Estudando um pouco mais sobre o assunto fui entender que de acordo com a imagem abaixo, temos um servidor de email dentro da nossa organização, que para enviar para um email que esteja fora dela, ele requer autenticação como medida de segurança.

Ou seja, se ele não está conseguindo concluir a operação e exibe essa mensagem é porque os dados de autenticação não estão sendo informados.

Configurei a sessão javamail utilizando como base sites que mostravam configurando conforme a imagem acima.

Na tela de administração do Glassfish fui até a seção Java Mail e verifiquei que as propriedades que dizem respeito a isso estavam erradas, ao invés de mail.smtp.auth, estava mail-smtps-auth e assim por diante. Foi modificado isso para a forma correta, realizado mais uma vez o teste e voilá!!!

Tudo funcionando e um detalhizinho fez toda a diferença

Publicado em EJB, java, JavaMail | Deixe um comentário

Estudo Flex GraniteDS/BlazeDS

Estamos adotando o Flex para construção de interfaces ricas (RIAs) e como não temos muita experiência, estamos apanhando em algumas ocasiões para poder validar a arquitetura de integração JAVA/Flex.

A princípio utilizamos o BlazeDS, pois é o mais adotado e pelo menos não acreditavamos precisar de sua versão paga, o LiveCycle, porém ao testarmos algo que vai ser muito comum para nós, que é trafegar Entidades do JPA para serem exibidas pelo Flex nos deparamos com um problema da LazyInicializationException. Numa aplicação feita somente em Java isso é contornável através do padrão OpenSessionInView ou OpenEntityManagerInView, porém como o Flex é uma nova praia para a gente, então tivemos que buscar alternativas. A primeira que achamos e menos impactante foi a solução com o Spring com a integração que ele traz para o Flex (http://migre.me/1ksTj). Apesar de ser uma solução boa, ela põe em dúvida em relação à escalabilidade, pois o Spring foi feito para aplicações que não precisassem ser escaláveis utilizasse as facilidades dos serviços disponibilizados pelo Container JEE, por isso sair anotando meus beans além de criar uma dependência com o Spring não avaliamos o impacto de colocar em um ambiente clusterizado. A solução foi partir para o GraniteDS.

O GraniteDS não tinha ouvido falar até então, mas vi que está ganhando cada vez mais força por não ser limitado como o BlazeDS e sua licença ser LGPL. No artigo http://migre.me/1ksZe percebe-se que além de ser um servidor voltado para JEE, ele fornece os serviços de gerenciamento e sincronização de dados que é feito somente na versão paga do BlazeDS, o LiveCycle, conforme a imagem http://migre.me/1kt3T. Já o impacto na aplicação é praticamente nulo, pois só iremos atualizar o xml de integração com o servidor.

Precisamos fazer mais testes com ele, porém vem se mostrando uma solução muito prática. Se o escolhermos espero que ele continue se desenvolvendo e caminhando junto com as grandes comunidades.

Publicado em blazeds, flex, graniteds, java | Marcado com | Deixe um comentário

Dicas para passar na prova CX-310-091 (SCBCD)

Prova difícil e com muitas questões que o objetivo é confuso. Fiz a prova no dia 26/01/2010 e passei com 63%, na linha, já que a porcentagem mínima de acertos é de 59%, entretanto foi um alívio, pois estava precisando tirar essa certificação. Três meses de estudo contínuo e materiais adequados acredito que sejam suficientes para se sair bem nessa certificação.

Não existe ainda literatura específica para esta certificação e muita gente comenta que os livros para certificação são os EJB 3 in Action, EJB 3 da O’reilly e Mastering EJB 3. Na minha opinião são excelentes livros, só que não para a certificação. Eles são livros voltados para quem quer aprender desde superficialmente a quem quer se aprofundar na tecnologia de objetos distribuídos da Sun. São livros que lhe ensinam desde como construir um Hello World utilizando a forma mais simples que seria o tipo de EJB Stateless até um exemplo mais complexo usando passagem de mensagens Assíncronas com transações distribuídas.

O que eu recomendo para certificação primeiramente é comprar um bom simulador de questões, no meu caso comprei o da Sun, mas me arrependi amargamente. Além de caro, possui uma base de 122 questões que não são dinâmicas e para ficar ainda mais indignado já possuía as questões que consegui através do Google. Amigos me recomendaram o simulado da Enthuware, mas acredito que a Whizlabs ainda seja o mais confiável de todos. Caso esteja começando do zero com EJB, então leia ou o livro EJB 3 in Action, ou o livro EJB 3 da O’reilly, pois vai lhe dar a dimensão que você precisa antes de começar a fazer os simulados. A medida que for fazendo os simulado, seria bom filtrar as questões por objetivo, então recolha as questões que lhe causaram maior dúvida ou mesmo surpresa e vá atrás do embasamento através de uma literatura, no meu caso preferi ler diretamente da especificação, ou mesmo procure no Google através de Fóruns, ou mesmo vá direto ao fórum de EJB do site javaranch, pois lá irá ter informações preciosas de quem está fazendo isso e de quem está botando em prática a teoria e está enfrentando algumas dúvidas.

Para comprar o voucher, fui pelo site da Sun, então foi outra novela, pois primeiramente você tem que requisitar o voucher, depois será mandado um boleto para o seu email e só depois de 15 dias o número do voucher será mandado via email. No meu caso tive que mandar um email para sun.education@sun.com, pois já haviam passado os 15 dias e ainda não tinha recebido meu voucher. Quero agracer à Karina da Sun do Brasil que me ajudou tanto com o simulado quanto com o voucher. Não fique estudando também dias antes de prova, pois isso fará aumentar sua tensão e acabar esquecendo pontos importantes na hora da prova.

Publicado em certificação, java, scbcd | Marcado com , , , | Deixe um comentário

Preparatório para o exame SCBCD (CX-310-091)

Um exame com conteúdo extenso e com dificuldade de encontrar materiais específicos. É assim que posso resumir como tem sido minha rotina de preparação para a prova de EJB da Sun.

A especificação de EJBs é dividida em 3 livros distintos. O primeiro é o livro com a especificação de forma simplificada que possui 59 páginas de fácil leitura. O segundo é a especificação de persistência, que atualmente se separou para uma JSR à parte, lá está tudo que é preciso saber a respeito do mecanismo de persistência oficial da arquitetura JEE. Para começar sua leitura é recomendado que se tenha em mente os 5 papeis definidos pela especificação. O terceiro e último diz respeito aos dois livros anteriores de uma maneira mais breve e especializada de acordo com os papéis e se aprofunda em todos os conceitos e funcionalidade fundamentais sobre EJBs, Entidades, Segurança e diversas outras funcionalidades esperadas para quem decide optar pela tecnologia mais utilizada para o mundo corporativo.

Depois de pesquisar em foruns e vários sites através do Google encontrei materiais muito bons e livros, que apesar de não serem específicos servem como boa forma de preparação e até mesmo introdução à maneira recomendada pela Sun para programar objetos distribuídos. Estarei disponibilizando ao final do Post os materiais, por isso podem ficar tranquilos.

Para quem está precisando de um livro voltado para o exame como existe para seu antecessor, o exame CX-310-090 pode tirar o cavalo da chuva, porque não há ainda e por mais que existam fontes para materiais. Nenhum dos materiais que encontrei fornecia todo o conteúdo que será exigido de você na prova, por isso não tem pra onde correr, você terá que ler a especificação.

Me desejem sorte, pois minha prova está marcada para dia 26/01/2010. Estou me preparando a seis meses, infelizmente não totalmente dedicados, mas acredito que esteja bem preparado para minha tentativa. Seguem as fontes para quem deseja fazer a prova e na qual me baseei.

Sites:

http://java.boot.by/scbcd5-guide/

http://www.javabeat.net/javabeat/scbcd/mocks/

http://www.skill-guru.com/skill/login/testDetails.faces?testId=19&testName=SCBCD%20%205%20-%20EJB%203%20Practice%20Test

http://www.nycjava.net/JSPWiki/Wiki.jsp?page=SCBCD5.0StudyGroupNotes

Livros:

EJB 3 in Action

Mastering EJB 3

Enterprise JavaBeans 3.0 5ª edição

Publicado em certificação, java, scbcd | Marcado com , , , | Deixe um comentário