Throubleshooting: Primefaces 3 componentes não carregam

Olá pessoal! 

Mais um post de throubleshootting, e esse aqui é de matar. Talvez você passe por isso. Olha a situação.

Contexto

Você migrou de versão do Primefaces 2.x para 3.x,  mas vê que os componentes não estão sendo carregados após fazer o deploy da aplicação. O que fazer? Bem, para começar vc vai tentar de tudo:

– Verificar o web.xml (não é necessário na 3.0, mas você já está desesperado e vai olhar)

– Ver se os .jars estão na pasta lib

– etc.

Mas, dai vem a solução.

Solução

N versão 3.x do PrimeFaces o xmlns mudou, ele agora é assim: xmlns:p=”http://primefaces.org/ui”> e se tiver apontando para versão da 2.x xmlns:p=”http://primefaces.prime.com.tr/ui”> não vai funcionar, ou seja, os componentes primefaces não serão carregados.

Ufa!! Sofri com isso aí por umas horas, porque não tinha visto em nenhum lugar no site do primefaces essa informação destacada, mas olhando direito nos exemplos dele do guide, está atualizado.

Enfim, tá ai mais um probleminha chato do dia a dia que podemos passar.

Abracos, see ya!!

Validando campos com JSF

 

olá Pessoal, hoje o post é dedicado para quem está aprendendo JSF e pretende usar os recursos de validação de campo do proprio  framework. Perguntas comuns sobre validação: como validar um email? Como validar um campo número? É isso que veremos, claro que mostrarei um pequeno exemplo “motivador”, vai de você criar outras validações para seu formulário. Observe que é algo bem simples e funcional. E para aqueles que  estão estudando para antiga SCJP e acham que regex é algo somente para certificação, Vejam nesse post o poder que regex tem. No post tem um link para “testador de expressões regex online”. Muito show, já tem até alguns exemplos prontos tais como: validação de IP, telefone etc.

lets go…

Preparando o ambiente

Certifique-se que você tem os arquivos .jars necessário para rodar JSF. Confira nos posts a seguir quais os arquivos que vc precisa. Sem falar que usar Jboss tools seria uma boa ideia. Para o nosso exemplo usaremos o plugin no Eclipse Jboss tools para suporte à JSF. Também não pode esquecer que nosso application server  será  o Tomcat, se ainda não instalou/configurou veja no exemplo abaixo.

Desenvolvimento

    1. Com o Jboss tools configurado e Eclipse aberto crie um novo JSF Project.

    2. Em WebContent crie uma página .jsp que redirecione para uma página chamada formulario.jsp. Mas, lembre-se que no seu arquivo index.jsp o code fica assim:

    3. Feito isso, vamos agora codificar nosso formulário em JSF. Para isso crie uma página em jsp com suporte JSF em WebContent chamando de formulario.jsp. Veja abaixo como criar uma página caso tenha esquecido:

    4. Abaixo temos nossa página em JSF. O uso de immediate=true em cada campo é para quando aparecer a mensagem de validação a pagina atual não seja processada, ou seja, ela não vai para a página seguinte enquanto você não atender os requisitos da validação.

    5. Agora crie uma página em .jsp que exiba uma mensagem qualquer. Pois, ela somente será exibida quando as validações da pagina do formulário forem válidas. Nos colocamos nessa página uma mensagem: Mensagem enviada com sucesso!

    6. Feito isso, precisamos criar nosso bean e controller. Então crie um package chamado br.com.bean e nele crie uma classe Java chamada de Usuario.java e deixe conforme abaixo:

  1. Agora crie um package br.com.controller e nele crie uma classe chamada Controller. É essa classe que será responsável por controlar nossa aplicação. Ela que diz aonde o usuário vai parar depois de uma determinada ação. Deixe conforme abaixo:

  2. Vá no arquivo face-config.xml e crie um ManageBean para a classe Controller conforme a imagem abaixo:

  3. Agora vamos adicionar as rules para navegação com as pages. Clique em Navigation Rules e a direita add. Veja abaixo como ficou:

  4. Precisamos apenas configurar o Navigation Cases. Veja:

  5. Uma explicação básica: “Quando vinher a uma mensagem chamada ‘sucesso’ da página formulario.jsp, favor de ir para a pagina mensagem.jsp”.

  6. Agora precisamos criar uma classe que vai validar os campos do nosso formulário, que nesse caso será apenas e-mail e idade. Para isso precisamos implementar uma interface JSF que vai nos auxiliar no processo. É a interface Validator. Para isso crie um package br.com.validator e uma classe EmailValidar e informe que essa classe implementa a interface Validator. Veja meu exemplo abaixo:

  7. Agora deixe sua classe conforme abaixo. E para não perder o costume, explicação está nos comentários.

  8. Agora vamos validar o campo idade, onde é permitido apenas digito. Crie a classe IdadeValidar.java e implemente o método Validator.

  9. Feito isso precisamos apenas informar para o nosso face-config.xml que usaremos nosso validador nesta aplicação. Veja como fazer isso:

  10. Faça o mesmo para o validator idade.

  11. Damos um nome ao validador e informamos a classe que tem a validação, o nome é requirido pois é ele que vamos usar no form.

  12. Agora vá na sua página que contém o formulário e deixe os campos email e idade conforme o código abaixo.

Testando Aplicação

  1. Salve as alterações. Se o tomcat estiver rodando, dar um stop e em seguida um start. E veja aplicação rodando. No nosso caso vamos rodar dentro do próprio Eclipse. Para isso a perspectiva que estamos usando é JavaEE depois clique com o botão direito em cima do projeto e vá em Run >> Run as >> Run on Server.

Vou ficando por aqui e espero que tenham gostado do post. Simples e básico.

See you next post! 😀

Lançamento Oficial do Livro JEE com Frameworks

Comprar

ae Pessoal,

Hoje é mais um dia feliz na minha vida, e primeiramente quero agradecer à todos vocês, pela força, atenção, feedbacks que venho recebendo nesses 3 anos de blog e sem eles, acho que não estaria aqui hj fazendo este post e publicando mais este projeto. Pois, meu segundo filhão nasceu, huhuhu \o/. Lindo igual ao pai, por consequencia do destino hehe. Uma das novidades é que além do formato impresso, temos a versão e-book. A seguir fiz um overview,há um post detalhado de  pré-lançamento aqui.

Lets go…

Note: Infelizmente, tivemos um problema na linha de produção da gráfica e atrasou a publicação que estava prevista para meados de julho/2011.

Agradecimento

Antes de tudo, preciso agradecer ao melhor amigo o Edson Gonçalves. Amigo este de longas datas, o qual eu tenho grande admiração e respeito. É um dos profissionais mais completos de TI que já pude conhecer, o cara tem um conhecimento cross que é uma coisa de louco(não se limita só a parte técnica). Fora amizade que temos, onde às vezes pego o caminho errado, o verdadeiro amigo aparece e ti fala:”Falei que poderia contar comigo, o caminho  é aquele vai em frente”. Esse é o Edson um amigo de verdade.

Outra pessoa que não posso deixar de agradecer é o Daniel de Oliveria (leader-DFJUG) de uma das maiores e respeitável comunidade de Java que temos no Brasil, estou falando do DFJUG. E não poderia deixar de dar minha contribuição (para quem não sabe eu vim da comunidade Java, foi onde tudo começou e hoje retribuir o que recebi é o minimo que posso fazer), adicionado a marca  na capa do livro. Obrigado Daniel pelo seu apoio e da comunidade :).

Overview

O livro tem como objetivo de ajudar aqueles profissionais que desejam aprender Java com Frameworks. É comum ao sairmos do “ABC do JEE” (normalmente é JSP/Servlet) sem saber qual framework estudar (Hibernate, JSF, Spring, “Struts”, VRaptor etc). Porém, há um problema que todo iniciante encontra: como aprender os frameworks e saber integrá-los em uma aplicação real? É isso que vamos ver no livro, aprender a usar os frameworks de forma prática e ver um pouco da teoria(se não gosta de teoria não se preocupe, pois veremos o suficiente para poder programar de maneira confortável). Os exemplos são variados, desde Java Application até JEE, a evolução de aprendizado no livro está no formato “baby-step” ajudando assim o leitor leigo no assunto. Uma novidade que alguns vão gostar e outros não, são os exercícios chamados de “Trabalho do dia” que tem como objetivo fazer o leitor desenvolver uma solução, porém há momentos que o leitor vai precisar fazer uma pesquisa na documentação da API, Google ou consultar outros capítulos.Porém, não avisamos isso no livro, então  o leitor terá que ter essa percepção. O motivo de ter adotado isso aos exercícios, transmitir um pouco do que vai encontrar no dia-dia como desenvolvedor in company, pois nem sempre teremos um colega do lado para dar o help que precisamos.

Público-Alvo

Programadores Java que tem como objetivo aprender de forma pratica o uso dos frameworks JEE mais requisitado no mercado.

Qual o diferencial?

Meus livros são diferentes, primeiramente pela escrita. Eu gosto muito da informalidade, de ser direto e tentar transmitir a informação da melhor maneira possível, como se eu tivesse ao lado do leitor. Nesse livro há vários diferenciais, um deles é o nosso laboratório on-line onde o leitor poderá fazer download do source, assistir uns vídeos de como colocar aplicação em um servidor de produção JEE(apoio da www.integrator.com.br), exercícios práticos etc.

Quando ler?

Assim, que terminar seus estudos, com Servlet & JSP, vc pode ler, do contrário, não faça o investimento agora e aguarde mais um pouquinho( coloque o livro na prateleira ou remova do seu carrinho de compras : ) ).

Requisitos

É preciso já ter uma certa experiência com Java, Banco de dados, saber como as aplicações JEE funcionam etc. Como o livro é focado em ensinar a usar de forma pratica os frameworks, não podemos perder tempo com toda teoria de JEE, então vamos direto ao assunto.Particularmente não gosto de livros grandes, eles ficam mais caros e o que eu quero é um preço acessível para todos, enfim até os que recebem mesada podem comprar (pelo menos a minha na época que tinha, os livros eram caros demais rs).

Desconto

Se quiser comprar o exemplar com 30% de desconto no site da Editora, basta usar o código a seguir durante a compra: V00014 e se cadastrar como associado.

Concorra Sorteio será 21/08/2011

Faça um RT da mensagem abaixo e sua inscrição, assim terá a chance de receber um exemplar na sua casa autografado(se preferir). Para sorteio usaremos o random.org e o número sorteado será o ganhador e a verificação do RT  Lembrando que para aqueles que fizeram mais de um cadastro com o mesmo e-mail, não estará concorrendo ao exemplar.

Lançamento do Livro Guia JEE c/ frameworks @RT: @camilolope #JEE #frameworks.Confira:

Lançamento Oficial do Livro JEE com Frameworks

Após, o resultado entrarei em contato pelo e-mail cadastrado e o ganhador tem até 48 hrs para responder, após o envio  do e-mail.Do contrário um novo sorteio será realizado, e o ganhador anterior acabou de perder a chance de receber o livro. : )

Fazer inscrição

Você pode deixar de ganhar se não fizer isso:

  • cadastrar e não fazer o RT;

  • fazer o RT e não se cadastrar;

A qtde de RT fica por sua conta, se quiser fazer mais de RT, ficarei feliz :).

Versão do Livro

  • Paper – R$ 47,20
  • E-book  – R$ 35,40

Eu quero comprar o meu

Onde comprar?

  • Site da Editora
  • Saraiva
  • Cultura
  • Fnac
  • Americanas.com
  • Submarino
  • e outras que eu não lembro rs

Download

Conseguir com a editora amostra de algumas páginas do livro, confiram aqui

Vou ficando por aqui e espero que tenham gostado do post.

Abracos see ya!!

Pré-Lançamento Guia JEE com Frameworks

Olá Pessoal,

Depois de um periodo off, estou de volta nesse inverno do Rio Grande do Sul, que é de matar, qualquer um. O post de hoje é diferente, é sobre o meu próximo filhão hehe. Recebi alguns twitters, da galera com curiosidade de saber do que seria, mas como não tinha a capa final, não adiantava eu postar aqui, como ficou pronta ontem, lá vai o PRÉ-LANÇAMENTO, nas próximas semanas já teremos os exemplares nas melhores livrarias. A seguir falo um pouco sobre o livro, para quem já conhece meu trabalho sabe que eles nascem com base é alguma experiência,necessidade que tive e não encontrei (como foi o Guia do Exame SCJP) daí teve que rolar o “made by Camilo Lopes” :). Não posso deixar de agradecer o apoio do DFJUG em adotar o livro  para sua biblioteca. Agradeço em especial ao Daniel Oliveira presidente da comunidade.

Livro JEE com Frameworks como tudo começou

O projeto nasceu, devido a dificuldade que tive na época dos meus estudos de encontrar em um único livro que abordasse de forma pratica os frameworks mais usados no mercado que consequentemente são aqueles que em qualquer entrevista de emprego o entrevistador vai perguntar:

  • conhece Hibernate, Spring, JSF, Annotations etc?

Não é isso que acontece? Eu passei por isso, e não foram poucas vezes, e o pior de tudo, que eu sabia 1, mas não conhecia os outros três, pois normalmente o conhecimento triangular em frameworks em algumas vagas é o que o entrevistador precisa, porém como muitos estão passando ou já passaram por uma situação de ser 3×1 para empresa, ou seja, você conhece só, mas os demais fica naquela, eu sei um pouco mais posso aprender. Porém, sabemos da realidade que são poucas empresas que se arriscam nesse “eu posso aprender” e o jeito do cara que está correndo atras é ir aprender por contra própria, caso não ele não seja aceito. Isso não é o fim do mundo, é um ciclo do mercado e cada organização tem uma política interna, e temos que respeitar(na época não acreditava nisso, mas aprendi com o tempo).

Com um pouco de revolta na época, de ter comprado 3,4,5 livros diferentes para aprender cada framework, e ainda não tinha um que conecta de bem de forma o uso dos frameworks em conjunto e eu tinha que ir montando a cabeça, gastando mais tempo que o necessário, pois no inicio nem tudo são flores. Partindo desse contexto, pensei, bem que eu deveria escrever um livro, pois acredito que há alguém passando e tendo as mesmas dificuldades que tive, e não aguenta mais comprar na amazon.com para esse fim. Ahh claro, há muitos artigos, posts de blogs na internet que ajudam. Mas, um artigo, sempre será um artigo e não tem como objetivo substituir um livro, assim como um post não tem como foco substituir um livro, cada macaco no seu galho.Enfim, partindo do problema de ter um livro para cada framework que eu precisasse aprender, o qual achava ruim, na verdade péssimo, até porque no inicio eu precisava, aprender o ABC, o sufuciente para fazer uma boa integração e partindo desse ABC eu posso ir aprofundando aos poucos e a medida que novos desafios vão surgindo vou aprendendo, e não querer ver tudo de uma vez( não dar para colocar um JavaDoc na cabeça, ou dar?), é assim que aprendemos na escola o ABC primeiro, não é verdade? Mas, a notícia que tive era ruim, não encontrei nada e tive que ir escavando usando uma par e fazendo as devidas anotações, depois começava a juntar o quebra cabeça, errava mais do que acertava, mas aprendia com os erros, mas a dor sempre é grande. E assim nasceu naturalmente, o Guia JEE com Frameworks.

O objetivo

O objetivo é muito simples. Guiar o leitor de forma prática desenvolver aplicações Java/JEE usando os frameworks mais requisitados no mercado. Ao final do livro acreditamos que o leitor já seja capaz de trabalhar de forma segura com o que foi abordado.

O que vou ver no livro?

Você vai ver como usar o Hibernate, JSF, SpringSecurity nas suas aplicações JEE, no inicio do livro considero que o leitor é leigo e vamos trabalhando com Java Application, e logo em seguida migramos de forma confortável para JEE, mantendo o uso do já foi aprendido e ampliando. Há exercícios praticos que é chamado de “Trabalho do dia” não é nada de fazer algo como 2+2 e sim praticar o que já foi visto e que motive o leitor ir só um pouco além e consultar API do framework para buscar as respostas. O motivo, é simular a vida real de todo desenvolvedor, buscar resolver os problemas da melhor forma possível usando ferramentas core de durante DEV.

O não vou ver no livro?

  • Não queira sair do livro, um especialista nos frameworks abordado, o foco é colocar você nos trilhos da melhor forma possível.

  • Não queira aprender Java, Servlet, JSP, este não é o objetivo, e vou considerar que o leitor já conheça Java e Servlet & JSP;

Quem pode ler?

Se você já viu um pouco de Servlet & JSP e se sente perdido para onde ir em JEE, com tantos frameworks, mas sem saber direito o que cada um faz e qual a melhor forma de aprender cada um em uma determinada ordem, este livro é para você.

A escrita

Bem, quem já conhece meus livros, sabe que uso uma linguagem informal e pratica, além disso coloco dentro dos codes explicações in line, por acreditar que explicando no “olho do furação” pode trazer efeitos de fixação melhor para o leitor. Nesse eu busquei evitar códigos quebrando entre as paginas e fiz um bom esforço de colocar o máximo possível em uma única página, há codes que diminui um pouco a fonte respeitando a legibilidade, somente para manter todo code possível em uma única página, claro que há codes que não dar. Para alguns que já foram aprensentados, foram omitidos os trechos e apenas o code novo é visto. Mas, não se preocupe que eu aviso quando isso acontece.

O livro não substitui um outro livro que abordar por completo um dos frameworks abordados aqui, até porque não temos esse foco, então se você deseja ver tópicos mais avançados, terá que dar uma olhada na documentação ou buscar livros mais especializamos, porém o que você aprender aqui é o que servirá para se tornar um Advanced-X.

Ganhe um exemplar

Se você quiser concorrer à um exemplar que será sorteado no dia do lançamento faço o seu cadastro no form abaixo e Re-Twitter, quanto mais você RT, mas chances de ganhar.

Faça sua inscrição

“Pré-Lançamento do Livro Guia JEE c/ frameworks @RT: @camilolope #JEE #frameworks.

https://blog.camilolopes.com.br/pre-lancamento-guia-jee-com-frameworks/” (use um encurtador de url de sua preferencia )

Vou ficando por aqui, espero que tenham gostado do post. see ya!

Abracos,

Você vai ver como usar o Hibernate, JSF, SpringSecurity nas suas aplicações JEE, no inicio do livro considero que o leitor é leigo e vamos trabalhando com Java Application, e logo em seguida migramos de forma confortável para JEE, mantendo o uso do já foi aprendido e ampliando. Há exercícios praticos que é chamado de “Trabalho do dia” não é nada de fazer algo como 2+2 e sim praticar o que já foi visto e que motive o leitor ir só um pouco além e consultar API do framework para buscar as respostas. O motivo, é simular a vida real de todo desenvolvedor, buscar resolver os problemas da melhor forma possível usando ferramentas core de durante DEV.

 

O não vou ver no livro?

  • Não queira sair do livro, um especialista nos frameworks abordado, o foco é colocar você nos trilhos da melhor forma possível.

  • Não queira aprender Java, Servlet, JSP, este não é o objetivo, e vou considerar que o leitor já conheça Java e Servlet & JSP;

 

Quem pode ler?

Se você já viu um pouco de Servlet & JSP e se sente perdido para onde ir em JEE, com tantos frameworks, mas sem saber direito o que cada um faz e qual a melhor forma de aprender cada um em uma determinada ordem, este livro é para você.

 

 

A escrita

Bem, quem já conhece meus livros, sabe que uso uma linguagem informal e pratica, além disso coloco dentro dos codes explicações in line, por acreditar que explicando no “olho do furação” pode trazer efeitos de fixação melhor para o leitor. Nesse eu busquei evitar códigos quebrando entre as paginas e fiz um bom esforço de colocar o máximo possível em uma única página, há codes que diminui um pouco a fonte respeitando a legibilidade, somente para manter todo code possível em uma única página, claro que há codes que não dar. Para alguns que já foram aprensentados, foram omitidos os trechos e apenas o code novo é visto. Mas, não se preocupe que eu aviso quando isso acontece.

 

O livro não substitui um outro livro que abordar por completo um dos frameworks abordados aqui, até porque não temos esse foco, então se você deseja ver tópicos mais avançados, terá que dar uma olhada na documentação ou buscar livros mais especializamos, porém o que você aprender aqui é o que servirá para se tornar um Advanced-X.

 

Se você quiser concorrer à um exemplar que será sorteado no dia do lançamento faço o seu cadastro no form abaixo e Re-Twitter, quanto mais você RT, mas chances de ganhar.

 

Pré-Lançamento do Livro Guia JEE c/ frameworks @RT: @camilolope #JEE #frameworks.

<link>

 

Vou ficando por aqui, espero que tenham gostado do post.

 

Abracos,

Relatório Ireport + JasperReport JEE + JSF

olá Pessoal,

No post de hoje, vou apresentar como gerar relatorios de uma base de dados sendo uma aplicação JEE. Em outro post, mostrei como gerar relatorios usando Java Basico com Hibernate, aqui vamos manter a mesma estrutura técnica a diferença apenas que será com foco para JEE. Espero que gostem.
Lets go…

Requisitos

Starting…

Para gerar relatorios em ambiente JEE, há algumas mudancas a nivel de codigo que sofrem alterações, porem tudo de ireport com BD é mantido.

passo 1

  • criar o layout no ireport e fazer a conexao com o banco de dados e definir as colunas do relatorio, enfim definir a estrutura do relatorio

passo 2

  • criar a classe de conexao com banco de dados – Hibernate
  • Criar o bean

passo 3

  • cria um package exclusivo para o relatorio e uma classe, por questao de organizacao importar o jrxml para o projeto e para o package do relatorio por medida de seguranca

passo 4

  • para que o arquivo seja gerado na pagina WEB, eh preciso mudar algumas coisas no metodo responsavel por gerar o relatorio:

FacesContext context = FacesContext.getCurrentInstance();

HttpServletResponse response = (HttpServletResponse) context.getExternalContext().getResponse();

ServletOutputStream responseStream = response.getOutputStream();

InputStream caminho = getClass().getResourceAsStream(“../relatorio/reportblog.jrxml”);

response.setContentType(“application/pdf”);

  1. criar um context e objetos de resposta.

  2. Fazemos um stream do caminho onde esta o jrxml. Quando temos dois pontos antes da barra significa que temosum caminho diferente da classe que gera o relatorio

  3. depois um response que informa o tipo do conteudo para o browser saber qual aplicativo chamar caso ele tenha suporte response.setContentType(“application/pdf”);

Na linha a seguir informamos como sera o nome do arquivo a ser gerado

response.setHeader(“Content-Disposition”,”attachment; filename=\”relatorio.pdf\””);

Abaixo temos o padrao para invocao

JasperReport pathReport = JasperCompileManager.compileReport(caminho);

//relatorio gerado

JasperPrint preencher = JasperFillManager.fillReport(pathReport, null,new JRBeanCollectionDataSource(listaUS));

JasperExportManager.exportReportToPdfStream(preencher,responseStream);

responseStream.flush();

responseStream.close();

context.renderResponse();

context.responseComplete();

O resultado

O resultado eh que ao inves de ter um arquivo que é direcionado para um local, ele aparece no browser (firefox, Chrome, IE) do usuario. E o browser decide como vai apresentar esse arquivo. Por exemplo, no FireFox, ele aprende o arquivo no proprio Browser, no Internet Explorer ele abre uma Janela onde o usuario decide se vai abrir ou fazer o download.

JasperViewer

O JasperViewer eh forma de exibir o relatorio em applet, ao inves de usar o browser, pode ser ate mais amigavel que usar o proprio browser, mas deve ser analizado o tempo de carregado disso em producao, basta adiciona a linha abaixo

JasperViewer.viewReport(preencher, false);

E desabilitar as linhas referente ao browser, para que nao seja executada em paralelo

response.setContentType(“application/pdf”);

response.setHeader(“Content-Disposition”,”attachment; filename=\”relatorio.pdf\””);

Vou ficando por aqui, espero que tenham gostado do post.

Abracos, see ya! Have a nice week, guys!