Explorar E-books
Categorias
Explorar Audiolivros
Categorias
Explorar Revistas
Categorias
Explorar Documentos
Categorias
Blazeds
Publicado em janeiro 12, 2011 por Pablo Souza
Hoje vou mostrar a integração de aplicações Flex 4 com back-end Java, utilizando o Blazeds para
comunicação entre eles. Durante a instalação e configuração do ambiente de desenvolvimento,
estamos considerando que você está trabalhando numa máquina com Windows. Caso não seja este
o caso não fique preocupado, basta repetir os mesmos passos descritos para o Windows adaptando
para o sistema operacional que você estiver utilizando.
1. Instalações
- Download Java Development Kit (JDK6), e após configurar a váriavel de sistema JAVA_HOME.
- Download Eclipse IDE for Java EE Developers.
- Download BlazeDS Turnkey, contêm uma versão configurada do servidor Tomcat e diversos
exemplos.
- Download Adobe Flash Builder 4, versão Standalone.
2. Instalando o BlazeDS
* Nesse momento você já deve ter instalado o JDK e confgurado a variável JAVA_HOME.
Para verificar se o servidor está rodando corretamente e ver as aplicações que citei, digite num
browser de sua preferência:
http://localhost:8400/
3. Instalando o Eclipse
Após o download do Eclipse, descompacte o conteúdo do arquivo compactado para uma pasta um
diretório de sua preferência:
C:\eclipse
* Assim como o BlazeDS, o Eclipse também não necessita de instalação. Basta descompactá-lo
para utilizar.
Para a instalação do Adobe Flash Builder 4 basta você ir avançando as opções, sempre mantendo os
valores padrões. A versão Standalone é uma versão Trial que dura 60 dias. No site da Adobe você
pode obter gratuitamente uma licensa de utilização caso você se enquadre nas exigências legais
(estudantes, profissionais autônomos, etc).
package br.com.rectius.model;
import java.io.Serializable;
/**
*
*/
private static final long serialVersionUID = 1L;
Agora vamos criar nossa camada de serviço, que será o ponto de entrada das requisições do nosso
front-end Flex.
package br.com.rectius.service;
import java.util.ArrayList;
import br.com.rectius.model.Usuario;
/*
* Como não estamos utilizando nenhuma ferramenta
* para persistência dos dados, vamos armazenar
* a informações nessa lista estática
*/
private static ArrayList<Usuario> listaUsuarios =
new ArrayList<Usuario>();
/*
* Insere um novo usuário
* @param usuario
*/
public void insereUsuario(Usuario usuario)
{
listaUsuarios.add(usuario);
}
/*
* Retorna todos os usuários
* @return
*/
public ArrayList<Usuario> listaUsuarios()
{
return listaUsuarios;
}
6. Configurando o BlazeDS
Para que o Adobe Flex possa se comunicar com nossa camada de serviço no Java, teremos que
modificar alguns arquivos de configuração do BlazeDS.
* A pasta WEB-INF contém toda a informação necessária para a integração de um projeto Adobe
Flex + Java + Blazeds.
Agora vamos copiar algumas pastas do BlazeDS para dentro nosso projeto Java. Localize a pasta:
C:\blazeds\BlazedsConfigBase\WEB-INF
A pasta lib contém todas as biliotecas necessárias para realizar a comunicação do Adobe Flex com o
Java.
A pasta flex contém os arquivos de configuração necessários para estabelecer essa comunicação.
Nesse momento a estrutura do seu projeto deve estar como na imagem abaixo:
Agora vamos configurar nossa aplicação para que o Flex consiga se comunicar com o nosso projeto
Java.
<display-name>BlazeDS</display-name>
<description>BlazeDS Application</description>
<!-- Http Flex Session attribute and binding listener support -->
<listener>
<listener-class>flex.messaging.HttpFlexSession</listener-class>
</listener>
<servlet-mapping id="RDS_DISPATCH_MAPPING">
<servlet-name>RDSDispatchServlet</servlet-name>
<url-pattern>/CFIDE/main/ide.cfm</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>MessageBrokerServlet</servlet-name>
<url-pattern>/messagebroker/*</url-pattern>
</servlet-mapping>
<welcome-file-list>
<welcome-file>index.html</welcome-file>
<welcome-file>index.htm</welcome-file>
</welcome-file-list>
</web-app>
Dentro desse arquivo é que informamos quais os serviços que nosso front-end Flex poderá ter
acesso. Para tal basta criar um novo destino para cada serviço.
<destination id="UsuarioService">
<properties>
<source>br.com.rectius.service.UsuarioService</source>
</properties>
</destination>
Agora reinicie o servidor de aplicação Tomcat para subir o projeto que acabamos de fazer deploy:
catalina stop
catalina start
Uma das novidades do novo ambiente de desenvolvimento Adobe Flex, o Flash Builder 4, é sem
dúvidas os recursos de conexão a dados e serviços.
No passo 4 nós fizemos a instalação do Flash Builder 4. Agora localize seu ícone na área de
trabalho ou no menu iniciar e abra o aplicativo.
Em seguida crie um novo projeto Flex. Clique em File > New > Flex Project
Agora faça suas configurações conforme a imagem abaixo:
Root folder: Representa o diretório onde fizemos o deploy do nosso projeto Java, dentro do
servidor de aplicação.
Root URL: Representa a URL de acesso ao projeto no servidor de aplicação.
Context root: Representa o nome da nossa aplicação.
Output folder: Representa o local onde serão compilados os arquivos do Flex.
Clique em Validate Configuration para se certificar de que você configurou tudo corretamente e
em seguida clique em Finish.
Antes de qualquer coisa vamos conferir se o Flash Builder inseriu corretamente um parâmetro de
compilação no projeto Flex.
Clique com o botão direito do mouse no projeto Flex, clique em Properties e certifique-se de que o
argumento de compilação -services foi inserido:
<s:controlBarContent>
<s:Label text="Gerenciamento de Usuários"
fontWeight="bold" fontSize="18"/>
</s:controlBarContent>
<s:layout>
<s:VerticalLayout
horizontalAlign="center" verticalAlign="middle"
paddingLeft="10" paddingRight="10" paddingBottom="20"
paddingTop="20"/>
</s:layout>
</s:Panel>
</s:Application>
09. Conectando a aplicação Adobe Flex ao Java
Em seguida vamos utilizar os novos recursos inseridos no Flash Builder 4 para se comunicar com o
Java.
Clique em Windows > Data/Services. Após a aba correspondente se abrir clique em Connect to
Data/Service….
Veja que alguns arquivos foram criados automaticamente:
Clique com o botão direito em qualquer ponto da sua Application (não clique nos componentes
Panel ou qualquer outro que não seja a Application) e clique em Generate Service Call:
Vá para o modo de visualização “Source” e veja que um método handler foi criado para manipular
o evento CreationComplete da Application.
Agora volte para o modo “Design”, clique com o botão direito no componente DataGrid e em
seguida clique em Bind to Data…
Clique no botão OK e veja o resultado:
Finalizamos o código para a listagem dos usuários. Agora precisamos fazer o código que vai inserir
os usuários.
Novamente clique com o botão direito do mouse no componente DataGrid e então clique na opção
Generate Details Form…
Arrume o posicionamento do formulário de cadastro, altere o label do botão. Em seguida clique
com botão direito do mouse sobre o botão e Generate Service Call…
Com isso já conseguimos inserir usuários na coleção do back-end Java. Agora vamos modificar
nosso código para que toda vez que um usuário for inserido os usuários sejam listados novamente
no componente DataGrid.
Fontes do projeto:
Referências:
- Accessing data services overview
1. Maicon diz:
Ola, gostaria se possível que tirassem uma duvida: Na parte (9) em que eu vou conectar a
aplicaçao flex com o java e vou em Windows > Data/Services. Após a aba correspondente
se abrir clico em Connect to Data/Service.. qndo dou next aparece uma tela de autenticação
e pede para eu fazer login. Qual seria este??
Obrigado.
Reply
o admin diz:
Abs!
Reply
nemézio diz:
Reply
admin diz:
Abs!
Reply
Abs!
Reply
2. Gustavo diz:
Reply
o admin diz:
Olá Gustavo!
Quanto ao workspace, você pode escolher qualquer pasta de sua preferência, é
indiferente para o tutorial. É o local onde será criado o seu projeto, tanto no Eclipse
quanto no FlashBuilder.
Com relação ao erro que você citou, refaça o passo 6 do tutorial, copiando o web.xml
que coloquei no tutorial para o seu projeto.
Você ainda pode fazer o download dos projetos Flex e Java para comparar o que está
diferente no seu projeto.
Abs!
Reply
3. Antonio diz:
estou com um problema na integração entre o flex + java (com BlazeDS) a rede aqui tem
proxy, e com o ambiente todo configurado (em tese), quando clico em Data/Services e
escolho BlazeDS, aparece uma tela para login.
já tentei colocar no web.xml false para useAppserverSecutiry, e nessa tela de Autenticação
selecionar o []No password required
mas continua dando um erro: Error executing RDS command. Status Code : 407 , Reason :
Proxy Authenticaton Required.
teria algum conselho?
Reply
o admin diz:
Esse passo que você descreveu que já fez deveria ser suficiente.
Você tentou baixar o projeto java que eu coloquei anexo ao post e subi-lo no seu
ambiente. Assim você pode procurar onde está a diferença entre os projetos,
analisando os arquivos de configuração.
abs!
Reply
Antonio diz:
Qdo eu entrava em
http://localhost:8400/GerenciaUsuario/messagebroker/amf eram exibidos 3
erros os quais não consigo mais vê-los pois agora até o Catalina tá dando erro
na inicialização:
Reply
admin diz:
abs!
Reply
Antonio diz:
admin diz:
Valeu !!!! =)