Blog

Novas Certificações da Sun JEE 6

ae! Pessoal que noticia boa!!.  A Sun atualizou seu ciclo de certificações e agora podemos contar com novos exame para JEE , alem da atualizacao da certificacao SCWCD com JSF. A inserção de JSF + JPA foi algo que realmente gostei nesse novo ciclo de atualização.

Nesta página http://www.sun.com/training/upcoming_java_ee_6.html?intcmp=1395#FJ-310-EE6 podemos ver o conteudo abordado nos treinamentos da Sun para cada exame.

Realmente, show!

Enjoy! Have a nice weekend.

Problema Tomcat 8080 no Eclipse – Solução

Ae! Pessoal, hoje o post é mais uma dica de como resolver um pequeno impasse que dar as vezes quando estamos usando o TomCat Server dentro do Eclipse.

Lets go…

Quem usa com bastante frequência TomCat dentro do Eclipse é comum receber o erro abaixo, e ter que reiniciar a maquina para tudo voltar o normal.

Se vc for tentar matar o processo, não vai encontrar nada relacionado ao tomcat. E vc tenta parar o server clicando no botão “stop” no Eclipse e acha que tudo deu certo, porém ao tentar executar um nova aplicação  vc é informado que o servidor está executando na porta 8080, sendo que vc está certo que não há nada rodando nessa porta, pois você já deu um Stop no TomCat. Então o que fazer?

  1. A pior solução eh reiniciar o computador.

  2. E a melhor é matar um processo com o nome de javaw.exe. Conforme a imagem abaixo: (poderiamos achar que seria algo como “tomcat”, mas não é).

Quero chamar atenção que há outros processos com o nome java, mas o que roda o tomcat é um tal de javaw que não consome quase nada de memoria a media é 20-45 K. “Mate” este processo e teste novamente sua aplicação no Eclipse. Concerteza, a felicidade vai estar estampada em seu rosto de ver aplicação rodando sem precisar reiniciar o computador.

Resumindo o nome do processo não tinha nada ver com o que poderiamos esperar. Na primeira vez que fui tentar fazer isso, esperava encontrar um processo com um nome “tomcat” ou algo próximo, mas nunca passou pela minha cabeça que seria  um “javaw”. Independente do nome, nao precisamos mais reiniciar o computador quando quando estivermos em uma situação como descrita acima.

Valeu pessoal, espero que a dica possa ajudar quem está passando por isso. Abraços e até o próximo post.

Java Básico + Hibernate JPA + Mysql


olá Pessoal,
Recebi alguns emails pedindo para criar um post mais puro com Hibernate + JPA, ou seja, sem o uso de JSF. Atendendo aos pedidos, montei um post bem simples, onde vamos criar a nossa velha classe Java com o método main e armazenar as informações em um BD (MySql) tendo o Hibernate como framework de persitencia. Entao se você deseja dar os primeiros passos usando os frameworks: Hibernate + JPA para persistencia de dados nao deixe de ler o post a seguir.
Lets go..
Outros posts.
– JSF + Hibernate + MySql no Eclipse
– Hibernate Annotations + JSF + MySql
– Busca com Hibernate Annotation + JSF
Atenção: Não apresentarei como criar um DB ou configurar o Hibernate no Eclipse. Qualquer dúvida consulte um dos posts acima. Vou considerar que você já tem um ambiente de desenvolvimento pronto para entrar em ação.
Dados do DataBase:

  • Crie um DataBase (usarei uma chamada livraria)
  • crie uma tabela (usarei uma tabela com o nome camilo )
  • Dados da tabela: id(auto_increment), nome(varchar), cidade(varchar)
  • Preparação do projeto
    1.Crie um o Java Project no Eclipse com o nome que achar conveniente.
    2.Agora crie uma estrutura de packages conforme a imagem a seguir

    3.Adicione os arquivos .jars do mysql, hibernate + JPA ao projeto. Clique com o botão direito no projeto escolha Properties e depois clique em JavaBuild. Na tela que aparece clique em Add external jars. (Caso nao tenha uma Library para os .jars )

    Desenvolvimento/Teste
    1.Agora crie uma classe Java com nome de Pessoa no package br.com.bean.

    package br.com.bean;
    /*se os arquivos .jars nao estiver no projeto
     * nao será possivel encontrar os imports
     */
    import javax.persistence.Entity;
    import javax.persistence.Id;
    import javax.persistence.Table;
    @Entity
    @Table(name="camilo")
    public class Pessoa {
    	
    	private String nome; 
    	private String cidade; 
    	@Id
    	int id;
    	public String getNome() {
    		return nome;
    	}
    	public void setNome(String nome) {
    		this.nome = nome;
    	}
    	public String getCidade() {
    		return cidade;
    	}
    	public void setCidade(String cidade) {
    		this.cidade = cidade;
    	}
    	public int getId() {
    		return id;
    	}
    	public void setId(int id) {
    		this.id = id;
    	}
    	
    }

    2.Crie uma classe ConexaoHibert.java no package br.com.conexao

    private static final SessionFactory sessionFactory;
    	private static final ThreadLocal threadLocal = 
    		new ThreadLocal();
    	/* observe o que temos de importante 
    	 * nesse bloco static, o arquivo
    	 * que possui os dados de conexao com 
    	 * o banco de dados hibernateconfig.xml 
    	 */
    	static{
    		try{
    			sessionFactory = new  AnnotationConfiguration().
    			configure("hibernateconfig.xml")
    			.buildSessionFactory();
    		
    		}catch (Throwable e) {
    			throw new ExceptionInInitializerError(e);
    		}
    	}
    	//retorna uma sessao de comunicacao com o BD
    	public static Session getInstance(){
    		Session session = (Session) threadLocal.get();
    		session = sessionFactory.openSession();
    		threadLocal.set(session);
    		return session;
    	} 

    3.Crie uma class PessoaDAO no package br.com.hibernatedao

    package br.com.hibernatedao;
    
    import org.hibernate.Session;
    import org.hibernate.Transaction;
    
    import br.com.bean.Pessoa;
    import br.com.conexao.ConexaoHibert;
    
    public class PessoaDAO {
    	private Session session;
    	
    	public void Salvar(Pessoa p){
    		//obtem uma sessao
    		session = ConexaoHibert.getInstance();
    		Transaction tx = null; //permite transacao com o BD 
    		
    		try{
    			tx = session.beginTransaction();
    			session.save(p);
    			tx.commit();//faz a transacao
    		}catch (Exception e) {
    			e.printStackTrace();
    			//cancela a transcao em caso de falha
    			tx.rollback();
    		}finally{
    			session.close();
    		}}}
    

    4.Agora crie uma arquivo .xml em source conforme o code abaixo:

    
    
    
     
      org.gjt.mm.mysql.Driver
    
      jdbc:mysql://localhost/livraria
    
      camilo
      integrator
      
     
    
    

    Fique atento aos nomes usado na class Pessoa.java para fazer anotação. Veja que eu tenho o nome da tabela no BD diferente do nome da minha class Java (fiz de proposito). Então somos obrigado a definir o name da tabela, caso contrario a JPA vai considerar o nome da classe.
    5.Agora crie uma classe no package br.com.teste com o nome de PessoaTest.java.

    package br.com.teste;
    
    import br.com.bean.Pessoa;
    import br.com.hibernatedao.PessoaDAO;
    
    public class PessoaTest {
    
    	/**
    	 * @param args
    	 */
    	public static void main(String[] args) {
    		Pessoa p = new Pessoa(); 
    		p.setNome("mel"); 
    		p.setCidade("Salvador");
    		PessoaDAO pdao = new PessoaDAO(); 
    			pdao.Salvar(p);	}}
    

    6.Salve e execute a classe PessoaTest.java e verifique se os dados foram inseridos no BD.

    Pronto!Bem simples não? E menos cansativo que usar o velho padrão DAO. Espero que tenham gostado do post. Abracos e até o proximo post…


    Follow me: http://twitter.com/camilolope

    SimSCJP Simulado Gratuito – SCJP

     

    Olá Pessoal,

    Para iniciar o ano com o “pé direito” e já inaugurando a primeira novidade em nosso blog. Venho através deste primeiro post de 2010, apresentar para vocês um mini-simulado para SCJP que desenvolvi no finalzinho de 2009, com o objetivo de ajudar aqueles que estão se preparando para SCJP. Para não gastar muito tempo e energia, e sem saber se a comunidade ia gostar do projeto, desenvolvi com poucas questões, porém há um pequeno grau de dificuldade.

    Lets go…

    *não sou muito bom de design e fiz algo bem básico, pois dei preferencia em dedicar meu tempo livre para o conteúdo.

    Abaixo o link da página do simulado com maiores informações sobre o projeto:

    Simulado – SimSCJP

    Nova Page: criei uma nova página, onde vocês encontrarão os eventos que já participei como palestrante: Palestras

    Espero que tenham gostado e fico no aguardo dos feedbacks. Se gostou indique a um amigo, que está se preparando também. 😉

    Abraços e ate o próximo post.

    Ahhhh, quase esqueço, o que acharam do nosso novo layout(template)? Esse ou o antigo?


    Layout Antigo

    Feliz Ano novo 2010/Metas


    Opa! Pessoal, Adeus ano velho, feliz ano novo!! (é algo assim, nunca lembro) rs. Bom nesse ultimo post de 2009, quero desejar a todos vocês um feliz ano novo, com muita Saúde e Energia positiva para o próximo ano. Isso é o mais importante, pq o resto, conseguimos superar ;). Ah não posso deixar de agradecer a todos pelas mais de 1300 visitas que o blog tem recebido nesse novo  endereço. Agradeço de coração a todos aqueles que acessam diariamente, que assinam o feeds, que indica o blog a um amigo, enfim, todos aqueles que participam desse nosso trabalho. Thanks.

    Lets go…


    Follow me: http://twitter.com/camilolope

    Para esse post eu preparei algo bem parecido com o post do ano passado, porem acrescentei algumas dicas para aqueles que ainda não montaram um planejamento para 2010. Alias vc já fez seu planejamento para 2010? Sabe aonde quer chegar? O que deseja atingir? Qual o seu objetivo para 2010.1?

    Responda essas perguntas, pois são fundamentais para começar o ano já ganhando tempo e como dizem por ai, com o “pé direito”.

    Estabelecer metas é algo importante em nossa vida, seja ela na área profissional ou pessoal. Por exemplo, se vc tem como objetivo de trocar ou comprar um carro novo em 2010.1, então vc deve traçar uma estrategia para alcançar esse objetivo de forma solida para não surgir aquela velha frase “Eita que esse ano está começando ruim”. Mas, as vezes por não fazer um bom planejamento para alcançar tais objetivos,  alguns colocam a culpa no ano, tempo, no cachorro etc.

    Precisamos ser organizados, e analisar quantas vezes for necessário o caminho que vamos tomar para atingir aquilo que queremos seja a curto,médio ou longo prazo. Não se preocupe que se tiver um planejamento e traçar algo de forma solida, as coisas acontecerão naturalmente, é a lei do tempo.

    Então além das dicas do post de 2008, eu sugiro acrescentar as dicas a seguir:

    Planejamento 2010.1

    • Defina o que pretende alcançar a curto prazo e diga de quando até quando.

      Exemplo: de Janeiro – Março: Estudar JEE e iniciar estudo para certificação SCWCD
      Março-Abril: Tirar certificação, e estudar frameworks JEE

    • Crie uma meta de médio prazo: Melhorar nível de inglês ate o final do semestre e fazer um intercambio em julho/2010

    • Separar money para o intercâmbio, e poupar por mês R$ XX,XX para viagem

    • Ler 3 livros IT ate o final de 2010.1

    • Iniciar uma pós-graduação

    *apenas criei exemplos básicos, para aqueles que estão perdidos, conseguir encontrar um norte/sul.

    Um detalhe que considero importante é colocar apenas aquilo que pode ser alcançado. Nada de ficar querendo ter uma lista longa de metas, porem o índice de não alcançar eh tao grande que somente de olhar vc fica desmotivado por saber que não vai alcançar(no sub-consciente). Trabalhe com prazos curtos porem com objetivos sólidos. (nao esqueça disso nunca)

    Vc pode montar isso, em um editor de texto, imprimir e deixar em um lugar visível no seu homeoffice, quarto etc. Assim não corre risco de esquecer facilmente. Eu anexei um modelo que fiz alguns anos atras, que pode servir de exemplo. As informações contidas são apenas para exemplificar. Porem pode servir de base, para quem ainda não tem um.

    Download

    Espero que vocês tenham gostado desse post, e UM FELIZ ANO NOVO e até 2010!! Abraços pessoal.