Dúvidas sobre Computação ?
Vamos tentar tirar dúvidas e trocar conhecimento com todos, sobre qualquer assunto relacionado a computação

sábado, 22 de agosto de 2009

Java Mail - enviando email com java

Nesse poste vou mostrar como enviar email a parti de um codigo java.

Inicialmente devemos baixar a API JavaMail disponibilizada pela SUN aqui.

Agora vamos criar um projeto java no Netbeans:

Vá em: Arquivo -> Novo projeto -> java -> aplicativo java
dê um nome ao seu projeto e finalize.

Feito isso devemos agora importa para o projeto as bibliotecas da API Java Mail. Basta selecionar o projeto clicar com o botão direito -> propriedades. Na janela de propriedades selecione bibliotecas, na aba Compilar que aparece ao lado clique em adicionar jar ou se preferir crie uma biblioteca e adicione essa biblioteca, localize os jars da API que fica dentro do diretorio lib, além dos jars desse diretorio é preciso adicionar também o jar mail.jar que fica dentro do diretorio onde esta localizado o diretorio lib. Depois clique em ok. Pronto todos os jars necessário já estão dentro do seu projeto.

A baixo temos a classe responsavel por enviar o email:


import java.util.Date;
import java.util.Properties;
import javax.mail.Message;
import javax.mail.MessagingException;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;



public class EmailSender {

private String HOST = "smtp.gmail.com";

private String from;
private String to;
private String subject;
private String body;

public EmailSender() {
}

public EmailSender( String to, String from, String subject, String body) {
this.from = from;
this.to = to;
this.subject = subject;
this.body = body;
}

public void sendMail(String senha,String to, String from,String subject,String body) throws MessagingException{

Properties props = System.getProperties();

// definindo o protocolo de transporte como smtp
props.put("mail.transport.protocol", "smtp");
// adicionando o host pelo qual vai ser enviado o email
props.put("mail.smtp.host", HOST);//smtp do gmail
// adicionado a porta pela qual vai ser enviado o email no host
props.put("mail.smtp.port", "465"); //porta do smtp do gmail

props.put("mail.smtp.socketFactory.port", "465"); //mesma porta para o socket
// definindo o protocolo para o socket
props.put("mail.smtp.socketFactory.class", "javax.net.ssl.SSLSocketFactory");

props.put("mail.smtp.socketFactory.fallback", "false");

// criando a sessão para o host
Session session = Session.getDefaultInstance(props, null);

// criando a menssagen para a sessão criada
Message msg = new MimeMessage(session);
// atribuido os email from e to da menssagen
msg.setFrom(new InternetAddress(from));
msg.setRecipients(Message.RecipientType.TO,
InternetAddress.parse(to, false));

// adicionando o titulo do email
msg.setSubject(subject);
// adicinando o corpo do email
msg.setText(body);
// definindo a data da menssagen
msg.setSentDate(new Date());

// inciando o processo de envio
Transport tr;
try {
tr = session.getTransport("smtp"); //define smtp para transporte

tr.connect(HOST, from, senha);
msg.saveChanges();
//envio da mensagem
tr.sendMessage(msg, msg.getAllRecipients());
tr.close();
} catch (Exception e) {
// TODO Auto-generated catch block
System.out.println(">> Erro: Envio Mensagem");
e.printStackTrace();
}
System.out.println("Message enviada OK.");
}
}


se alguém estiver interessado em ver a aplicação completa basta enviar um email, para o endereço abaixo pedido, que eu envio.

flavio.henso@gmail.com

Obrigado pela atenção e até próxima.

segunda-feira, 10 de agosto de 2009

Criando serviço web com axis2 e Netbeans

Para poder criar um serviço web com axis2 no Netbeans primeiro precisamos baixar e comfigurar o axis2 no Netbeans, logo abaixo mostro como fazer para configurar.

Primeiro Passo:

Baixar o WAR do axis2
O Apache Axis2 pode ser baixado aqui http://ws.apache.org/axis2/1_4_1/installationguide.html . Baixe a distribuição do WAR (Web Archive), para que você não tenha que construir o arquivo WAR sozinho. O download é no formato de um arquivo. Depois, você desempacota o arquivo no servidor web Tomcat,Glassfish, Jboss, denntro do diretório webapps.


Segundo Passo:

Instalar o plugin de suporte a axis2 no Netbeans, inicie o Netbeans na opção ferramentas -> Plugins, vai aparecer uma janela parecida com esta, basta procura e selecionar o plugin do axis2 e clicar em install, para que o plugin seja instalado. Depois disso é só reiniciar o Netbeans.



















Terceiro Passo:

Deployment do axis2 no servido Web (aqui irei adotar o Tomcat):

Certificando de que o primeiro passo foi realizado, basta iniciar o Tomcat. O Tomcat desempacota o arquivo axis2.war em uma pasta axis2 em CATALINA_BASE/webapps.

Precisamos indicar a localização do axis2.war para o Netbeans, vá em Ferramentas -> opções. Vai aparecer uma tela parecida com esta abaixo:

















Clique na aba Axis2, e indique onde esta o arquivo axis2.war dentro do servidor web, depois informe usuario e senha, clique em ok.

Pronto temos agora o Tomcat, axis2 e Netbeans configurados, podemos agora criar nosso servico.

Para isso, iremos primeiro criar nossa classe que queremos disponibilizar através de um servico web. Clicando em novo projeto, vai ser apresentada uma tela parecida com esta, no área Categoria selecione Java em seguida na área Projeto selecione Aplicativo Java, como na figura abaixo:














Em seguida, clique em Próximo, voce vai ser levado para outra tela, nessa tela, dê o nome ao seu projeto e clique em concluir, pronto voce já pode começar a cria sua classe.
Criei uma classe que representa algumas funções basicas de uma calculadora, soma, subtrair, multiplicar, como esta representada abaixo:



















Tando com sua classe criada, o que temos que fazer agora é transforma essa classe em uma servico web. Clicando com o botão direito do mouse em cima do projeto, clique em Novo -> Outro, em seguida será exibida outra tela, onde é necessário escolher o tipo do arquivo que será criado, no nosso caso escolha web service e na caixa ao lado escolha axis2 service from java, pois queremos criar um web service através de um codigo java. Veja as imagens abaixo:
































Feito isso clique em proximo, a seguinte tela será exibida:














Nessa tela as opções de create web service from existing java class deve esta marcada, uma vez que vamos criar um web service de uma classe java já existente, procure dentro do projeto a classe clique em ok e depois clique em finalizar. Veja imagem abaixo:





























Pronto feito isso, já temos nosso serviço criado.
Agora precisamos disponibilizar esse servico em um servidor web (Tomcat).
Para poder disponibilizar um web service para acesso, é preciso gerar o arquivo .aar, basta clicar com o botão direito do mouse em cima do serviço e clicar em Deploy to server. Veja imagem abaixo:




















Após isso será exibido no console (aba que mostra a saida - resultado da operação), o caminho do arquivo gerado, conforme abaixo:









esse arquivo que foi gerado é preciso colocalo dentro da pasta de servico do axis2, geralmente fica localizado nesse caminho C:\apache sotware fundation\apache-tomcat-6.0.18\webapps\axis2\WEB-INF\services. Pronto agora basta inciar o Tomcat e verificar se realmente o servico esta disponivel, para isso acesse no seu navegador http://localhost:8080/axis2/services/listServices , se tiver dado tudo certo deve ser exibida a tela abaixo:














Pronto agora temos um Web Service funcionando, e disponibillizado.

Obrigado pela atenção e até a próxima.

segunda-feira, 3 de agosto de 2009

Simulados para Certificação Java

Pessoal hoje em dia todo programador Java sonha em ter a certificação Java no seu curriculo, porém todos sabem o quanto é difícil conseguir tal certificado, muitos tentam poucos conseguem. Existe na Internet diversos site que disponibilizam simulados para que os programadores possam testar seus conhecimentos. Por isso venho através desta postagem indicar para voces um desses site que acessei dias atrás onde venho treinando os meus conhecimento em Java, não se trata de um simulado com questões extremante complicadas, mas sim um simulado que exige que voce tenha bastante atenção, e que além disso exige que voce tenham uma boa fundamentação teorica em Java.

Para poder acessar o simulado é preciso se cadastrar no site, o cadastro é gratuito.

http://www.caelum.com.br/caelummock/login/navigation/

abaixo são mais alguns site com simulados

http://www.danchisholm.net/ - o melhor e um dos mais difíceis
http://www.examulator.com/jezam/exammenu.jsp
http://www.geocities.com/SiliconValley/Network/3693/certlinks.html
http://www.geocities.com/r_palwai/scjp.htm
http://www.geocities.com/technofundo/tech/scjp/scjp1_4.html
http://www.ibiblio.org/javafaq/course/
http://www.inf.furb.br/~juniorvs/java/certificacao/
http://www.janeg.ca
http://www.java.ezdir.net/certificacao.htm
http://www.javacertificate.com
http://www.javacaps.com
http://www.javacaps.com/scjp_mockexams1.html
http://www.javacaps.com/scjp_mockexams2.html#test2
http://www.javacert.com
http://www.javafree.com.br/home/modules.php?name=News&file=article&sid=421
http://www.javaprepare.com
http://www.javaprepare.com/quests/test.html
http://www.javaranch.com
http://www.javaranch.com/mock.jsp
http://www.jaworski.com/java/certification/
http://www.jchq.net
http://www.jchq.net/tutorial/01_01Tut.htm
http://www.journally.com.br/certificacao.htm
http://www.lanw.com/java/javacert/HardestTest.htm
http://www.levteck.com
http://www.whizlabs.com/scjp/scjp-upgrade.html
http://www.valoxo.ch/jr/mocks/mock01a.html
http://www.jdiscuss.com/Enthuse/jsp/ViewResources....tegory=scjp2&subcat=Mock+Exams


Bom é isso ai!
Divirtam-se!

sábado, 1 de agosto de 2009

Usando JBars para gerar código de barras



Criador de Código de Barras(Código Fonte)

Criei uma janela rapidinho para mostrar como é simples criar código de barra com JBars. No exemplo usei um método estático createImage da classe Barcode. Os parâmetros do métodos são:
  1. Tipo do Código - String Codebar type(Barcode.TYPE_CODE128 or Barcode.TYPE_CODE93 or Barcode.INTERLEAVED2OF5);
  2. Conteúdo do código - String que representa o código;
  3. Altura da barra - float altura em pixel;
  4. Nome da Fonte - String o nome da fonte usada;
  5. Tamanho da fonte - int o tamanho da fonte usada;
  6. Transparencia - boolean Usar transparencia no fundo da imagem;
  7. Alignment - int alignment do texto: use Barcode.ALIGN_CENTER, Barcode.ALIGN_LEFT, Barcode.ALIGN_RIGHT;
  8. Style da fonte - int o style da fonte: BOLD, ITALIC OR PLAIN
  9. Cor da Barra - color a cor das barras;
  10. Cor do texto - color a cor do texto;
  11. Orientação - int ângulo de rotação da imagem em radians: 0,PI/2, PI or (3/2)*PI
Como podemos ver no código abaixo, é muito simple sua utilização.

Image imagem = Barcode.createImage(Barcode.TYPE_CODE128,codigo.getText(),new Float(altura.getNextValue().toString()), Font.SERIF,Integer.parseInt(fonteSize.getNextValue().toString()),true, Barcode.ALIGN_CENTER,Font.ITALIC,Color.BLACK, Color.BLACK, 0);

Perceba que o retorno do método é uma imagem, logo podemos adicioná-lo muito facilmente em um label.

jLabel1.setIcon(new ImageIcon(imagem));


Divirta-se. :)

sexta-feira, 3 de julho de 2009

Serializando e Deserializando objetos java usando XStream

1.Você deve adicionar o pacote xstream ao ClassPath de sua aplicação.




2.Crie o modelo estrutural do seu XML, não é necessário escrevê-lo, basta ter em mente o seu modelo, no meu caso montarei minhas classes baseado no modelo descrito abaixo.




3.Para isso, iniciarei com a tag Pessoa. Para montá-la criei a classe Pessoa.java, contendo os seguintes campos nome, sobreNome, idade, endereco e fone, onde endereco é do tipo Endereco e fone é uma lista de Telefone. Note que, fone é implícito.


4.Agora devemos criar a classe Endereco, que segundo o meu modelo acima, têm dois campos: cidade e estado.


5. O próximo passo é criar a classe Telefone. No meu caso decidi criar o campo DDD como sendo um atributo da tag Telefone, o outro campo é numero. Note que, o campo DDD do xml foi chamado de codigo no modelo Telefone.java. Para que no xml o atributo seja chamado de DDD eu adicionei a anotação @XstreamAlias(“DDD”).



6.Para serializar o objeto Pessoa, devemos popular as classe, depois passá-la para o método toXML da classe Xstream. Caso você queira eliminar alguma tag, basta adicionar o valor null no campo correspondente, se quiser que a tag apareça, mas sem nenhum valor, adicionar valor “”(abre e fecha aspas).

7.A linha 84 faz com que a instancia do xstream reconheça automaticamente as anotações.

8.A linha 87 elimina qualquer possibilidade de referencia no código xml.

9.A linha 59 Serializa o objeto Pessoa.


10.Para Deserializar o xml, foi necessário algumas alterações na instancia do xstream.

11.A linha 48 “diz para instancia do xstream” que no código xml, existe um atributo chamado DDD que é referente ao campo codigo da classe Telefone.

12.A linha 49 “diz para instancia do xstream” que no código xml, existe um uma tag implícita que está relacionada ao campo fone da classe Pessoa.

13.A linha 51 é passado a String referente ao código xml ao método fromXML.



14.Aqui está o resultado final, no lado direito o arquivo xml gerado, do lado esquerdo o método que imprime a classe Pessoa e em baixo o resultado escrito no terminal.


quinta-feira, 14 de maio de 2009

Iniciando com Grails

O objetivo dessa apresentação é mostrar o caminho para quem quer iniciar com grails, no primeiro vídeo você verá como instalá-lo no linux, o segundo vídeo mostra a criação de um aplicativo no grails e no terceiro montamos um aplicativo simples com relacionamento one-to-many de (Livros e Autor). Existem várias outras fontes de pesquisa onde você pode consultar informações para se aprofundar nesse "novo universo", como:

Instalando Grails no Linux



Hello World Grails



Primeiro Aplicativo Grails