sexta-feira, 29 de agosto de 2008

Gerando um certificado SSL

Este tutorial demonstra como criar um certificado SSL (certificado de conexão segura) usando a ferramenta OpenSSL e como configurará-lo no Tomcat.

Requerido:
- Tomcat instalado
- OpenSSL instalado
(ao fim da página deixo os links)

Para gerar o certificado e configurar o Tomcat para rodar suas páginas através do protocolo https, siga as etapas abaixo (clique nas imagens para ver detalhes):

1 - Abra o prompt de comando e vá até a pasta bin que fica dentro do diretório de instalação do OpenSSL.

2 - Digite:

openssl req –config openssl.cnf –new –out <pasta_onde_sera_colocado_o_certificado>\nomeCertificado.csr


3 - Digite uma senha de sua preferência e logo depois a confirme.

4 - Logo depois será requerida uma série de informações que serão inseridas no seu certificado. Veja a seguir um exemplo para essas entradas (estarão em inglês):

-País: BR
-Estado: Minas Gerais
-Cidade: Pouso Alegre
-Nome da Organização: Luis LTDA
-Nome da Unidade Organizacional: Software
-Common Name: l-u-i-s.blogspot.com (ele pede outra informação, mas aqui costuma-se colocar o domínio)
-Email: luis@reborn.com
-Challenge password: pass
-Nome opcional da empresa: Luis&Luis

5 - Digite:

openssl rsa -in privkey.pem -out <pasta_onde_sera_colocado_o_certificado>\nomeCertificado.key

Ao pedir a senha, informe a senha que você criou no passo 3.

6 - Digite:

openssl x509 -in <pasta_onde_sera_colocado_o_certificado>\nomeCertificado.csr -out <pasta_onde_sera_colocado_o_certificado>\nomeCertificado.crt -req -signkey <pasta_onde_sera_colocado_o_certificado>\nomeCertificado.key -days 730

Observe as informações apresentadas na tela.

Obs: 730 é a validade do certificado (730 dias).

7 - Digite:

openssl pkcs12 -export -in <pasta_onde_sera_colocado_o_certificado>\nomeCertificado.crt -inkey <pasta_onde_sera_colocado_o_certificado>\nomeCertificado.key -out <pasta_onde_sera_colocado_o_certificado_invertendo_barra>/nomeCertificado.p12 -name seu.dominio.com –CAfile <pasta_onde_sera_colocado_o_certificado_invertendo_barra>/nomeCertificado.crt -caname seu.dominio.com –chain

Depois entre com a senha e a confirme.


Obs: Observe bem o espaçamento e as barras (em alguns pontos usa-se contra-barra em outros usa-se barra normal).

Pronto! O certificado foi gerado e está dentro da pasta que você definiu.

8 - Agora vamos configurar o Tomcat. Vá até TOMCAT_HOME\conf\server.xml e remova a tag do conector da porta 8080, remova todo o conteúdo do bloco (a tag segue abaixo, no arquivo ela está entre <>):

Connector port="8080" maxThreads="150" minSpareThreads="25"
maxSpareThreads="75" enableLookups="true" redirectPort="8443"
acceptCount="100" connectionTimeout="20000" disableUploadTimeout="true"/

e adicione no mesmo local a seguinte a seguinte tag (
o trecho abaixo deve ser colocado entre <>):

Connector port="443" maxhttpheader maxthreads="150" minsparethreads="25" maxsparethreads="75" enablelookups="false" disableuploadtimeout="true" acceptcount="100" keystorefile="C:\pasta\nomeCertificado.p12" keystoretype="PKCS12" keystorepass="suaSenha" debug="0" scheme="https" secure="true" sslenabled="true" clientauth="false" sslprotocol="TLS"/

Não se esqueça de adicionar as informações de seu certificado dentro desta tag.

Pronto, o Tomcat está configurado para rodar pelo https.


9
- Digite o novo endereço de sua aplicação, lembrando que agora ele foi modificado. Por exemplo, se antes você acessava em http://localhost:8080/SuaApp , agora você acessa em https://localhost:443/SuaApp.

Agora ao acessar sua aplicação irá aparecer uma mensagem informando que você está iniciando uma conexão segura.



10
- Para instalar o certificado, ao aparecer a mensagem clique em View Certificate, depois em install certificate.


Pronto, o certificado foi criado, configurado no Tomcat e instalado.

Links:
site Tomcat
site OpenSSL

quarta-feira, 27 de agosto de 2008

Java - Diferença em dias entre duas datas

O método abaixo recebe duas datas no formato Date (java.util ou java.sql) e retorna a diferença em dias entre essas duas datas:


private long
getDateDifference(Date date1, Date date2) {
return ((date1.getTime()-date2.getTime())/86400000);
}

terça-feira, 19 de agosto de 2008

Configurando o autocompletar do eclipse

Estava utilizando o eclipse e de repente percebi que o autocompletar tinha perdido a funcionalidade. Procurei na internet e nada de achar uma solução. Então um amigo conseguiu solucionar o problema e resolvi postar a solução aqui.

1 - Para configurar o autocompletar vá em:
Window - Preferences

2 - Nessa janela selecione a opção:
Java - Editor - Advanced

3 - Marque os quatro primeiros checkboxes das duas áreas que aparecerão na tela (parte superior e inferior) e clique em OK.


A imagem acima mostra a área de configuração. Clique nela para ver detalhes.

Pronto, o autocompletar está funcionando!

segunda-feira, 11 de agosto de 2008

Mudando idioma do netbeans 6.1 para inglês

Para mudar o idioma do seu netbeans para inglês siga os seguintes passos:

1. Acessar o local onde está instalado o Netbeans. (Padrão--> C:\Arquivos de programas\NetBeans 6.1)

2. Abrir a pasta etc, localizada dentro do diretório acima.

3. Adicionar ao fim do documento netbeans.conf a seguinte linha:

netbeans_default_options="-J-Duser.language=en -J-Duser.country=US"

Pronto, seu netbeans está configurado com o idioma inglês.

segunda-feira, 4 de agosto de 2008

Tutorial - Web Services Com Java

Bem pessoal, quando fui tentar estudar web services por conta própria, de cara, encontrei um forum que me desanimou, dizendo que aprender web service sozinho era uma tarefa meio impossível. Estudei um tutorial com axis (framework da apache), e realmente vi que com aquela ferramenta ir ser difícil, pois para fazer um web service simples de cálculos matemáticos, levei horas.
Mas eu continuei procurando conteúdos e tutoriais, não podia ser tão difícil assim, afinal eu só precisava de um web service para uma consulta simples a um banco de dados. Então pude ver que a coisa era extremamente simples, encontrei o que eu queria.
O jdk 6 já vem com uma api para web services, chamada JAX-WS. Usei essa api no eclipse, e não foi necessário nem servidor de aplicação para testar o web service. Utilizá-la no netbeans é ainda mais simples, você cria seu web service no "clica e arrasta".
Ainda no netbeans, você pode criar web services, sem ficar perdendo muito tempo em arquivos de configuração e comandos via prompt, utilizando o RESTful, que é uma tecnologia que não usa o SOAP.

A seguir coloquei as etapas resumidas para criação de web services usando JAX-WS:

Requerido:
- JDK 6 instalado.

Etapas:
1 – Com o java 6, para criar um web service deve-se usar as anotações @WebService e @WebMethod na sua classe, pois o jdk 6 já vem com a tecnologia jax-ws implementada. Crie a seguinte classe exemplo:

@WebService
public class HelloWeb {

@WebMethod
public String hello(String nome) {
return "Hello " + nome;
}
}

2 – Você deve utilizar a ferramente apt (annotation processing tool) que encontra-se na pasta bin do jdk para gerar as classes do web service. Para isso, dentro do diretório src do seu projeto, use a seguinte linha de comando:

apt pacote\HelloWeb.java

Gera um pacote pacote.javaws com duas classes, uma classe Hello.java para os parâmetros do WebService (no nosso caso String nome do método hello) e outra HelloResponse.java que representa o retorno.

3 - Para publicar o serviço/endpoint e iniciá-lo, use a classe seguinte:

public class PublicaService {

public static void main(String[] args){
HelloWeb service = new HelloWeb();
Endpoint endpoint = Endpoint.publish("http://localhost:8080/hello", service);
}
}

Pronto, o WebService está rodando sem servidor de aplicação nem web container. Tudo isso com javaSE 6 jdk. Para acessar a wsdl dele, usa-se o URL:

http://localhost:8080/hello?wsdl

4 - Para criar o cliente do serviço, o javaSE 6 já vem com as ferramentas necessárias. Precisamos usar o wsimport (na pasta bin do jdk) para gerar as classes do cliente. Com o serviço rodando, fazemos na linha de comando (dentro da pasta src do projeto):

wsimport -keep -p pacote.cliente http://localhost:8080/hello?wsdl

A opção keep não apaga os arquivos fontes e p gera as classes dentro do pacote especificado.

5 - Para chamar o serviço pelas classes geradas, escreva a seguinte classe:

public class TesteServico {

public static void main(String[] args) {
pacote.cliente.HelloWeb port = new HelloWebService().getHelloWebPort();
System.out.println(port.hello("Luis"));
}
}

Repare que a classe HelloWeb que foi gerada pelo wsimport é uma interface, não confundir com o serviço HelloWeb que é uma implementação.

Pronto! Seu web service está funcionando.

Abaixo deixo links de outros tutoriais:

Web Services RESTful no netbeans
Tutorial Axis 1.3 (GUJ)

sábado, 2 de agosto de 2008

Tutorial - Programação para TV Digital

Muita gente interessada em começar a programar para tv digital me pergutava por onde começar, então resolvi elaborar este pequeno texto para nortear o caminho de quem está começando a estudar programação para tv digital.
Vou começar por alguns conceitos:

- Middleware: Middleware é uma camada de software posicionada entre o código das aplicações e a infra-estrutura de execução (plataforma de hardware e sistema operacional). Um middleware para aplicações de TV digital consiste de máquinas de execução das linguagens oferecidas, e bibliotecas de funções, que permitem o desenvolvimento rápido e fácil de aplicações.
- Ginga: Ginga é o nome do middleware do Sistema Brasileiro de Tv Digital Terrestre (SBTVD).
- javatv: Api da sun para programação java para tv.
- xletview: Ferramenta para simular aplicações em java para tv (projeto parado desde 2005).
- Lua: Linguagem de script criada pela PUC-Rio em 93, muito usada para jogos e para web, conhecida internacionalmente.
- Ginga-NCL: Linguagem declarativa também criado pela PUC-Rio, permite a criação de programas interativos para tv.
- Ginga-J: É a api java para programação na tv digital brasileira.
- Composer: Ambiente onde se pode criar aplicações utilizando NCL sem necessitar de um conhecimento prévio de programação.
- NCL-Emulator: Simulador para rodar suas aplicações NCL e NCLua.
- NCL-Eclipse: Plugin para você criar seus programas NCL no eclipse. (recomendo)

Por onde começar?

Comece pelos tutoriais, a seguir deixo uma relação de links onde você poderá encontrar material:

comunidade ginga
emulador xletview
linguagem Lua
tutorial NCL
tutorial Lua
clube ncl
api javatv da sun
exemplo de código java
tutorial instalação xletview

Espero que tenha sido útil.

sexta-feira, 1 de agosto de 2008

Pastebin - Poste seus códigos na internet

O pastebin - collaborative debugging tool - é um site muito útil, onde você pode postar seu código de programação e compartilhá-lo pela internet, o código ficará disposto de acordo com a sintaxe da linguagem usada, com cores identificando as palavras reservadas da linguagem. Despois de postar, você vai obter uma url onde ele ficará acessível.

Maiores informações no próprio site:

http://pastebin.com/

Developers Webdays 2008

Dias 22 e 23 de Agosto em São Paulo, com 100% de aproveitamento!

* Conheça as principais novidades das tecnologias Java e .NET
* Palestras sobre Boas práticas e Arquitetura
* Certificado de Participação
* 100% de aproveitamento - Apesar das palestras acontecerem simultaneamente, não haverá perda de conteúdo. No dia do evento você receberá um DVD com o conteúdo completo de todas as palestras em formato de vídeo-aula!

Principais Temas:

- Java: Ajax, Java FX, Grails, Android, Groovy, Jboss Seam, JSF, RIA (Flex, etc), Best practices em java;
- .NET: Linq, WPF, Silverlight 2.0, ASP.NET 3.5, Ajax, ASP.NET MVC, Visual Studio 2008, Novidades C# 3.0 e VB.NET 9.0, Best practices em .NET;
- Extras: SOA, WEB 2.0, WEB 3.0, Arquitetura Web, Scrum, Microsoft XNA, Ruby on Rails, Domain Driven Design, Mashups.

São 46 horas de conteúdo, apenas 300 lugares. Maiores informações:
www.devmedia.com.br/webdays2008
evento@devmedia.com.br