Info Computação
Blog voltado para área de computação. Dicas, artigos, tutorias, notícias.
Mostrando postagens com marcador Eclipse. Mostrar todas as postagens
Mostrando postagens com marcador Eclipse. Mostrar todas as postagens

Criando um web services com eclipse

Posted In: , . By Thiago Fonseca

Nesse post vou demonstrar como criar um pequeno web services usando o eclipse.
O que são web services ?

Trata-se de pedaços de lógica de negócio localizada em algum local na web acessada através de padrões baseado em protocolos da Internet como HTTP/SMTP.
Usa três tipo de tecnologia: SOAP, WSDL, UDDI.

  • SOAP (Simple Object Access Protocolo) prover uma estrutura padrão para transportar XML, além de outros tipos de documentos. Assim com um padrão único de transporte heterogenos clientes e servidores podem ser interconectados como exemplo clientes .NET invocando métodos em servidores JAVA.
  • WSDL (Web Service Description Lenguage) trata-se de um XML que descreve a interface padronizada do webservice. Como exemplo o WSDL representa INPUTS e OUTPUTS invocadas externamente.
  • UDDI (Univesal Description, Descovery and Integration) provê um registro do webservice para que outros webservices descrevam, descubra e integre o webservice.
Os webservices são altamente distribuídos sendo Arquitetura Orientada a Serviços (SOA). Autores chamam de "O sonho" da computação distribuída.

Um exemplo prático disso imagine uma empresa A que aluga carros. Uma empresa B é responsável por vender pacotes de viagens. Ambas possuem um portal na internet que a empresa A aluga carros pela internet e a empresa B vende pacotes de viagens. Um cliente quer viajar para o exterior e de preferência queria alugar um carro para passar as férias. Nos dias atuais o site B vende a passagem e para alugar um carro o cliente deve procurar outros sites. Se o site que aluga carro implementar um webservice esse serviço pode ser oferecido para diversas outras empresas onde simplesmente chamariam um método (alugar carro) passando os dados que o cliente quer para que o carro seja alugado sem precisar sair do site B.

Usando o eclipse para implementar um webservices.

Vamos no eclipse -> New -> Dynamic web project. Criaremos um projeto dynamico básico.

Após criar o projeto vamos criar um class chamada Calculadora. Nosso pequeno webservice será o "Cara" para fazer operações de somar, subtrair hehe.

Implementamos os métodos básico na class Calculadora.

public double Somar(double a, double b) {
return a + b;
}
public double Subtrair(double a, double b) {
return a - b;
}

Com a Class gerada vamos novamente em New -> Others -> Web Services -> Web service e clicamos em NEXT.



Na próxima janela arrastaremos o split para test server e no botão browser vamos apontar para a class Calculadora. Observe que existe também a opção para o client mas isso será em um próximo post.



Depois disso clicamos em Finish. Nosso webservice já estará criado. Será apresentada uma janela para que possamos startar nosso webservice caso o tomcat não esteja start. Só clicar no botão start server.
Obs.: Para publicar imaginamos que você tenha configurado o tomcat apache corretamente no eclipse e que tenha as lib Axis do apache que vem com o Eclipse 3.3 adiante.



Após isso aparecerá a janela do Web Service Explorer. Click em Launch para abrir o navegado.


Em seguida aparecerá o Explorer. Nele visualizamos todos nossos serviços oferecido com na imagem abaixo.



Por enquanto nosso webservice só contém o serviço de calculadora. Para testarmos clicaremos em um dos métodos (Somar, Subtair) e entraremos com o Input. A tela é intuitiva.

Como resultado nosso webservice funcionando perfeitamente.



Abraço, até a próxima.

 

Criando uma aplicação no JBoss Seam

Posted In: , . By Thiago Fonseca

Bom, irei durante esses dias tentar demonstrar como criar uma aplicação no JBoss Seam.
Tempo de projeto ? Alguns minutos.
Palavras-chave: Java, JBoss AS, Jboss Seam, Postgre Sql.

Tentarei abordar de forma simples, dividindo em algumas partes:
  • Pré-requisitos para implementação

  • Utilizar um exemplo existente em um banco de dados em postgre sql

  • Implementação do projeto através do framework Seam

  • Análise do resultado

  • Testes

1. Requisitos para implementação:

Vamos trabalhar com o Eclipse Europa JEE disponível em: http://www.eclipse.org/downloads/download.php?file=/technology/epp/downloads/release/europa/winter/eclipse-jee-europa-winter-win32.zip

Obs.: Não é necessário a princípio de uma IDE java, pois todos os procedimentos, classes, páginas web serão geradas automaticamente pelo Seam, sendo a IDE necessária para adptar a suas configurações.

JBoss Seam tools disponível em: http://www.jboss.org/tools/download/index.html

Utilizaremos com servidor de aplicação o JBoss Application Server 4.2.3.GA: http://www.jboss.org/jbossas/downloads

Procedimentos para configuração:
Extrair o eclipse em alguma pasta (ex.: c:\meu_projeto, certifique de que contenha JDK, e uma variável de ambiente JAVA_HOME apontando para o diretório do JDK em seu sistema operacional)


Após isso extrair pra essa mesma pasta o JBoss AS, JBoss Seam e criar um workspace. Exemplo:
c:\meu_projeto\eclipse
c:\meu_projeto\jboss-seam-2.1.0.SP1
c:\meu_projeto\jboss-4.2.3.GA
c:\meu_projeto\workspace


2. Após definir o ambiente certificar os dados necessários para conectar ao banco de dados

(Driver, URL, banco, usuário, senha)
No meu caso precisei incluir a biblioteca postgresql-8.3-603.jdbc4.jar na pasta lib do JBoss-4.2 AS. Faça o mesmo para o banco de sua escolha.

3. Criando o projeto no JBoss Seam

Para criarmos todo o projeto precisamos ir pelo console\terminal, até o diretório em que se encontra o JBoss Seam. Ex.: cd c:\meu_projeto\jboss-seam-2.1.0.SP1

Após isso decore o principal comando: seam -help (windows). Com ele você poderá ter a lista de todos os comandos necessários para gerar a aplicação e etc.

Primeiro vamos utilizar o  seam setup e apertamos .

setup:
     [echo] Welcome to seam-gen :-)
    [input] Enter your Java project workspace (the director
Seam projects) [D:/thiago/workspace] [D:/thiago/workspace] .
Aponte para seu workspace,  

Depois,
    [input] Enter your JBoss home directory [D:/thiago/jboss-4.2.3.GA] [D:/thiag
o/jboss-4.2.3.GA]
Aponte para pasta do seu JBoss,  

Depois,
[input] Enter the project name [sgfpe] [sgfpe]
Coloque um nome para seu projeto,  

Depois,
    [input] Do you want to use ICEfaces instead of RichFaces [n] (y, [n])
Não quero usar o ICEfaces. Basta o richfaces,  

Depois,
 [input] Select a RichFaces skin [blueSky] ([blueSky], classic, deepMarine, DEFAULT,
 emeraldTown, japanCherry, ruby, wine)
Escolha seu skin de preferência,  

Depois,
    [input] Is this project deployed as an EAR (with EJB components) or a WAR (w
ith no EJB support) [war] (ear, [war])
Formato de arquivo de distrubuição de sua escolha,  

Depois,
    [input] Enter the Java package name for your session beans [com.sgfpe.sgfpe]
 [com.sgfpe.sgfpe]
Coloque um nome para sua package,  

Depois,
    [input] Enter the Java package name for your entity beans [com.sgfpe.sgfpe]
[com.sgfpe.sgfpe]
Coloque um nome para sua package de entity beans,  

Depois,
    [input] Enter the Java package name for your test cases [com.sgfpe.sgfpe.tes
t] [com.sgfpe.sgfpe.test]
Coloque um nome para sua package de teste,  

Depois,
    [input] What kind of database are you using? [postgres] (hsql, mysql, oracle
, [postgres], mssql, db2, sybase, enterprisedb, h2)
Escolha seu banco de dados,  

Depois,
    [input] Enter the Hibernate dialect for your database [org.hibernate.dialect
.PostgreSQLDialect] [org.hibernate.dialect.PostgreSQLDialect]
Marquei o que teve por padrão, 

Depois,
    [input] Enter the filesystem path to the JDBC driver jar [D:\thiago\workspac
e\lib\postgresql-8.3-603.jdbc4.jar] [D:\thiago\workspace\lib\postgresql-8.3-603.
jdbc4.jar]
Aponte para a biblioteca JDBC,  

Depois,
    [input] Enter JDBC driver class for your database [org.postgresql.Driver] [o
rg.postgresql.Driver]
Apenas ....

Depois,
    [input] Enter the JDBC URL for your database [jdbc:postgresql:postgres]
[jdbc:postgresql:postgres]
Entre com sua base de dados   ....

Depois,
[input] Enter database username [usuario] [usuario]
Entre com o nome do usuário ....

Depois,
 [input] Enter database password [****] [****]
Entre com o a senha do usuário do banco de dados ....

Depois,
    [input] Enter the database schema name (it is OK to leave this blank) [sgfpe
] [sgfpe]
Entre com um esquema do banco se preferir...  

Depois,
    [input] Enter the database catalog name (it is OK to leave this blank) [] []
Entre com um catálogo do banco se preferir...  

Depois,
    [input] Are you working with tables that already exist in the database? [y]
([y], n)
Estamos dizendo que as tabelas ja existem.

Depois,
    [input] Do you want to drop and recreate the database tables and data in imp
ort.sql each time you deploy? [n] (y, [n])
Não. Não apague nossas tabelas...

Finalmente....
   [delete] Deleting: D:\thiago\jboss-seam-2.1.0.SP1\seam-gen\build.properties
[propertyfile] Creating new property file: D:\thiago\jboss-seam-2.1.0.SP1\seam-g
en\build.properties
     [echo] Installing JDBC driver jar to JBoss server
     [echo] Type 'seam create-project' to create the new project

BUILD SUCCESSFUL
Total time: 1 minutes 21 seconds

Depois como a própria mensagem já nós diz, instale o JDBC no servidor (copie a lib para a pasta lib) e entao execute o comando: 'seam create-project' 

Após isso o seam apresentará outra mensagem como a seguir:

     [echo] Type 'seam explode' and go to http://localhost:8080/sgfpe

     [echo] Eclipse Users: Add the project into Eclipse using File > New > Proje

ct and select General > Project (not Java Project)

     [echo] NetBeans Users: Open the project in NetBeans

BUILD SUCCESSFUL

Total time: 28 seconds

Pronto, nosso projeto já está pronto para ser usado!! Se preferir abra pelo eclipse/Netbeans ou então teste local usando o comando' seam explode'

Para rodar local nao esqueça de verificar se o JBOSS AS está ativo.

Abaixo segue algumas fotos do sistema gerado em menos de 2 min. Até a próxima