Web Service at Amazon cloud

Propaganda
PREPARAÇÃO DO AMBIENTE DE DESENVOLVIMENTO E
PRIMEIRO WEB SERVICE UTILIZANDO O AWS ELASTIC BEANSTALK
Desenvolvido por: Leonardo de Jesus Silva
Data: 08/07/12
Baseado em http://homes.dcc.ufba.br/~dclaro/download/Tutorial_Google_App.pdf
Para obter informações sobre nível de uso gratuito da AWS http://aws.amazon.com/pt/free/.
Para obter informações sobre o AWS Elastic Beanstalk http://aws.amazon.com/pt/elasticbeanstalk/.
Requisitos
Java 1.5 ou superior
Eclipse IDE for java developers 3.5 ou superior. Eclipse IDE for Java EE Developers 3.6 é recomendado.
Eclipse Web Tools Plataform 2.0 ou superior, baseado sobre os requisitos da sua distribuição Eclipse. O Eclipse
IDE for Java EE Developers 3.6 tem o Web Tools Plataform pré-instalado.
Baixe a biblioteca JAX-WS para fornecimento de Web Services http://jax-ws.java.net/.
Instalação do Plugin
Efetue download e instale o AWS Toolkit for Eclipse usando o site de atualização do Eclipse a seguir:
http://aws.amazon.com/eclipse/
Para instalar o Eclipse 3.6 (Helios) ou posterior
Abra "Help" (Ajuda) -> "Install New Software…." (Instalar novo software)
Entre em http://aws.amazon.com/eclipse na caixa de texto rotulada “Work with” (Trabalhar com) no topo do
diálogo.
Selecione “AWS Toolkit for Eclipse” na lista a seguir.
Clique em “Next” (Próximo). O Eclipse o direciona pelas etapas de instalação restantes.
Sumário
Vamos desenvolver uma aplicação simples que recebe como parâmetro uma temperatura medida em Farenheit e
devolve se este tempo é considerado frio ou quente. Vamos criar aqui o web service ClimaInfo. Aqui utilizaremos
a biblioteca JAX-WS. O mesmo web service feito para o Google App Engine pode ser visto em [2].
1. Crie um novo “AWS Java Web Project”.
2. O “New AWS Java Web” Project wizard aparece.
3. Entre com o nome do seu “AWS Java Web Project” no campo “Project name” WeatherSOAPServer.
4. Clique em “Configure AWS accounts” para entrar com suas credenciais de segurança da sua conta da
Amazon. Irá aparecer a seguinte janela.
5. Para encontrar o Access Key ID e o Secret Access Key clique em “find your existing AWS security
credentials”.
6. Entre com seu login e senha e aparecerá janela:
7. Copie o ID de chave de acesso e a chave de acesso secreta e cole respectivamente em Access Key ID e
Secret Access Key.
8. Clique em OK e clique Finish.
9. Irá criar uma aplicação básica com uma página jsp com algumas informações a cerca dos serviços da
Amazon Webservices.
10. Descompacte o arquivo do JAX-WS baixado anteriormente em pré-requisitos. Copie todos os arquivos
que se encontram em \jaxws-ri\lib para a pasta WebContent/WEB-INF/lib do projeto.
11. Crie uma nova Classe dentro do pacote com.example. O nome da classe ClimaInfo. O conteúdo da classe:
package com.example;
import javax.jws.WebMethod;
import javax.jws.WebParam;
import javax.jws.WebService;
@WebService
public class ClimaInfo {
@WebMethod
public String comoEstaOTempo(@WebParam(name="grau") int temperatura) {
if (temperatura > 30){
return "Quente";
}
else if (temperatura < 15){
return "Frio";
}
else {
return "Agradavel";
}
}
}
12. Em WEBContent/WEB-INF altere o arquivo web.xml adicionando o seguinte conteúdo antes da tag
</web-app>
<listener>
<listener-class>com.sun.xml.ws.transport.http.servlet.WSServletContextListener</listener-class>
</listener>
<servlet>
<description> temperature </description>
<display-name>climaInfo</display-name>
<servlet-name>climaInfo</servlet-name>
<servlet-class>com.sun.xml.ws.transport.http.servlet.WSServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>climaInfo</servlet-name>
<url-pattern>/ClimaInfoService</url-pattern>
</servlet-mapping>
13. Na pasta WEBContent/WEB-INF, crie um arquivo XML com o nome sun-jaxws.xml e com o seguinte
conteúdo:
<?xml version="1.0" encoding="UTF-8"?>
<endpoints xmlns='http://java.sun.com/xml/ns/jax-ws/ri/runtime' version='2.0'>
<endpoint name='climaInfo' implementation='com.example.ClimaInfo'
url-pattern='/ClimaInfoService' />
</endpoints>
14. Se possuir um servidor tomcat 6 ou tomcat 7 instalado no seu ambiente eclipse pode testar sua aplicação
sobre ele. Basta clicar com o direito sobre a raiz do projeto e clicar em “Run As“ e seguir as instruções.
15. Para implantar na nuvem da Amazon clique com o botão direito do mouse na raiz do projeto. Clique em
Amazon Web services -> deploy to AWS Elastic Beanstalk...
16. Clique em “Manually define a new Server” irá aparecer a janela abaixo. Se não estiver mostrando a pasta
Amazon Web Services basta rolar o scroll para cima.
17. Clique em next e configure como abaixo:
18. Clique next e em finish em seguida.
19. Espere o uploading da aplicação e inicialização do ambiente.
20. Ao término aparecerá uma janela como esta. O endereço onde seu serviço web está hospedado é
mostrado abaixo na forma http://<ambiente>-<identificador>-elasticbeanstalk.com.
21. Para acessar a informação do web service no final do endereço web coloque ClimaInfoService
22. Clicando no link ao lado do WSDL(da pagina web na célula Information da tabela) irá levá-lo para o
arquivo WSDL gerado.
23. Para testar o web service em um cliente pode usar o SoapUI. Clique em File -> New soapUI Project. Em
Initial WSDL entre com o link(da pagina web na célula Information da tabela) como o da figura acima.
24. Em seguida clique duas vezes na requisição Request 1 do método comoEstaOTempo. Forneça o
parâmetro(neste caso está entre as tags grau). Clique no botão que parece uma seta verde. O resultado é
mostrado abaixo.
25. No console da sua conta na Amazon Web Services na opção de AWS Elastic Beanstalk algo como:
26. Observe a atividade da sua conta na Amazon Web Service para verificar se inadvertidamente usou além
da cota de uso gratuito. A cota de uso gratuito é válido por 1(um) ano.
Referências:
1. Getting
Started
with
AWS
Elastic
Beanstalk
Deployment
in
http://aws.amazon.com/articles/4412341514662386
2. INSTALAÇÃO E USO DO GOOGLE APP ENGINE PLUGIN utilizando o Eclipse
http://homes.dcc.ufba.br/~dclaro/download/Tutorial_Google_App.pdf
3. Décio H. Luckow e Alexandre A. de Melo, Programação Java para a Web, Editora Novatec,
4. Obter credenciais https://portal.aws.amazon.com/gp/aws/securityCredentials
Eclipse
Galileo
Download