Integração do Java + Adobe Flex através do Projeto BlazeDs



Documentos relacionados
Integrando Flex + Java + BlazeDS

O nome ANT é uma sigla para another neat tool (mais uma ferramenta organizada), segundo seu autor James Duncan Davidson.

Tutorial de instalação do Java 7 no Windows 7.

TUTORIAL SISTEMA DE CONTROLE DE ACESSO

Integração entre o IBM HTTP SERVER, APACHE WEB Server e IBM Websphere Application Server

Adobe Flex. Cainã Fuck dos Santos Thiago Vieira Puluceno Jonathan Kuntz Fornari Gustavo Nascimento Costa

JAVAWEB AULA 2 Prof. Daniela Pires Sumário

Ambientação JAVA. Versão 0.1 MICHEL CORDEIRO ANALISTA DE NEGÓCIO (NTI 2014) 1 UNIVERSIDADE CEUMA 08/01/2014

Instalando e configurando o Java Development Kit (JDK)

Tutorial: Criando aplicações J2EE com Eclipse e jboss-ide

JAVAWEB AULA 2 Prof. Daniela Pires Sumário

Logo abaixo temos a Barra de Menus que é onde podemos acessar todos os recursos do PHP Editor.

( TIAGO DOS SANTOS MENDES ) PROGRAMAÇÃO DISPOSITIVOS MOVEIS ANDROID STUDIO

2 Orientação a objetos na prática

Procedimentos para Configuração do Ambiente J2EE e J2SE em Ambiente Windows

Criação de um novo projeto no Eclipse utilizando Maven

Instalando o J2SE 5.0 JDK no Windows 2000/XP

DOCUMENTAÇÃO DO FRAMEWORK - versão 2.0

Dominando Action Script 3

Curso Superior de Tecnologia em Análise e Desenvolvimento de Sistemas Prof. Felippe Scheidt IFPR Campus Foz do Iguaçu 2014/2

Demoiselle Report Guide. Demoiselle Report. Marlon Carvalho. Rodrigo Hjort. Robson Ximenes

Repeater no GASweb. Regiões

Lógica de Programação

Tutorial RMI (Remote Method Invocation) por Alabê Duarte

Linguagem de Programação JAVA. Professora Michelle Nery Nomeclaturas

Adobe Flex para iniciantes, desde a instalação até à produção avançada. Página 1

Nome N Série: Ferramentas

DWR DIRECTED WEB REMOTING

Passos para a configuração do ambiente de desenvolvimento:

Prática em Laboratório N.01 Criando um Serviço Web via Console

Objetivos: Entender o funcionamento dos programas Java via linha de comando

Despachante Express - Software para o despachante documentalista veicular DESPACHANTE EXPRESS MANUAL DO USUÁRIO VERSÃO 1.1

JavaScript. JavaScript é uma linguagem de script usada em navegadores web. É uma linguagem dinâmica, estruturada e orientada em objetos.

Prática da Disciplina de Sistemas Distribuídos Serviços Web IFMA DAI Professor Mauro Lopes C. Silva

Projeto Amadeus. Guia de Instalação Windows

Versão Manual FoRc. Última Atualização: Maio/2007. Daniel Schmitz

WEBDESIGN. Professor: Paulo Trentin Escola CDI de Videira

Apache Ant. Leonardo Gresta Paulino Murta

Tutorial: Serviços web e suas composições

Introdução. História. Como funciona

Como mandar mensagens OSC pelo Flash via Flosc

Criação de Servlets Name Directory Build WAR JSP/Servlet frameworks Launch URL Package Class name Generate header comments

Banner Flutuante. Dreamweaver

JAVA NETBEANS PGOO Prof. Daniela Pires Conteúdo

Manual de Instalação do Agente Citsmart

Aula 4. Objetivos. Conteúdo dinâmico na internet.

Instalando o plugin CDT 4.0

Instalação do Plugin LeJOS

Java Básico. Aula 1 por Thalles Cezar

Um pouco do Java. Prof. Eduardo

1. Introdução. 2. A área de trabalho

Capítulo 2 Introdução à ferramenta Flash

Introdução. Tutorial do Xdoclet. Resumo

Scriptlets e Formulários

mkdir /srv/www/default/html/calculadora/imagens mkdir /srv/www/default/html/calculadora/blocos

GEPLANES GESTÃO DE PLANEJAMENTO ESTRATÉGICO MANUAL DE INSTALAÇÃO DO GEPLANES EM UM AMBIENTE WINDOWS

Programação Orientada a Objetos com PHP & MySQL Cookies e Sessões. Prof. MSc. Hugo Souza

Lógica de Programação

Android Básico Hello World!

2 echo "PHP e outros.";

O que é o JavaScript?

Google Web Toolkit* Clério Damasceno Soares, Daniel da Silva Filgueiras e Fábio Figueiredo da Silva

Programação Web Prof. Wladimir

MAN001 Atualização Protocolo e Ação Social Versão 2 Cliente: Duralex Sistemas

Acesso à Dados ZEOS x Delphi. Professor Anderson

Criando um script simples

O código JavaScript deve ser colocado entre tags de comentário para ficar escondido no caso de navegadores antigos que não reconhecem a linguagem.

Introdução. à Linguagem JAVA. Prof. Dr. Jesus, Edison O. Instituto de Matemática e Computação. Laboratório de Visão Computacional

CURSO DE PROGRAMAÇÃO EM JAVA

ANDROID APPLICATION PROJECT

Criando aplicações ricas com Adobe Flex 3.4 e Java

1 de 7 11/04/ :35

SCPIWeb. SCPIWebDespRec Aplicação Web para Consulta de Despesas e Receitas ( Lei Complementar nº 131 de 27 Maio de 2009 )

AVG Admin 2012 SQL Server 2005 Express

Laboratório I Aula 2

Patch & Installer. Documento para a Criação de Instalador ou Patch para os Produtos OFCDesk V. 1.0

PROGRAMAÇÃO PARA INTERNET. Fonte: Raul Paradeda

jquery Apostila Básica

PJCUS-361 CONTRATO COM CÓDIGO DE BARRAS

OBJETIVO Criação e execução de um projeto Android dentro da IDE IntelliJ.

PHP Material de aula prof. Toninho (8º Ano)

Acessando um Banco de Dados

Instalação e Configuração do Java (por Gilberto Irajá Müller)

Manual do MySuite. O MySuite é a solução adotada pela MKData para gerenciar o atendimento aos clientes.

HTML / JAVASCRIPT. A versão atual é o HTML5 (seus predecessores imediatos são HTML 4.01, XHTML 1.1, etc.).

Criando & Consumindo um WebService com ASP.NET 2.0 Publicado em: 25 de Agosto de 2007 Por Herman Ferdinando Arais

Conexão nativa com banco de dados no Delphi

Configurar o Furbot no Eclipse

Escrito por Lisiane Batista Neitzke Qui, 13 de Outubro de :11 - Última atualização Seg, 30 de Março de :38


Desenvolvimento Flex com Maven

Manual de Instalação da Versão 3.0 Sumário

Programação para Internet Orientada a Objetos com PHP & MySQL Instalando e configurando um ambiente de ferramentas PHP e MySQL. Prof. MSc.

AMBIENTE. FORMULÁRIO: é a janela do aplicativo apresentada ao usuário. Considere o formulário como a sua prancheta de trabalho.

Parte I. Demoiselle Mail

UNIVERSIDADE. Sistemas Distribuídos

Para que o Educa Mobile seja disponibilizado para os alunos, responsáveis por alunos e/ou professores os passos abaixo devem ser seguidos:

Transcrição:

Integração do Java + Adobe Flex através do Projeto BlazeDs por, Thiago Luiz Ribeiro Rodrigues (R.A: 060147-2), 14 de Abril 2009 Este artigo tem por objetivo ensinar como se faz a integração entre o Java e Adobe Flex através do BlazeDS, apresentando uma das opções de integração do Java e outras tecnologias. Java é uma linguagem de programação orientada a objeto e foi desenvolvida na década de 90. Por ser uma linguagem compilada para um bytecode onde é executado por uma máquina virtual, ela se diferencia das convencionais que são compiladas para código nativo. Uma das vantagens é sua portabilidade, ou seja, por ser uma linguagem interpretada, ela pode ser executada em qualquer plataforma ou equipamento que possua um interpretador Java e que tenha sido especialmente compilado para o sistema a ser utilizado. O Java tem se popularizado nesses últimos anos conquistando uma considerável fatia do mercado por possuir algumas características cada vez mais exigidas no dia-a-dia como: - Ser Orientada a Objeto - Portabilidade - Recursos de Rede - Segurança - Entre muitas outras. Num mundo competitivo como o que vivemos, grandes empresas nacionais, multinacionais, bancos, financiadoras, varejistas, e-commerce etc. têm optado pelo Java por ter um peso muito grande na característica de portabilidade não limitando o usuário a ter uma plataforma específica como, por exemplo, sua integração com outras linguagens ou sistemas já existentes. Assim, a empresa pode aproveitar o que já tem e criar novos recursos com qualidade e tecnologia inovadora. O Adobe Flex foi lançado em março de 2004 pela Macromedia, baseado na plataforma do Macromedia Flash, com o flex suportando o desenvolvimento de aplicações ricas para

internet. Uma das grandes diferenças do Macromedia Flash para o Adobe Flex é o conjunto de componentes incluindo botões, list boxes, árvores de acesso, data grids e muitos outros objetos de controle de texto, além de conteineres de lay-out. Componentes de gráficos são disponíveis como complementos. Outros atributos são os web services, arraste e solte, caixas de diálogo modais, animações, status da aplicação, validações, e outras interações que rodeiam uma aplicação do tipo framework, assim aumentando a produtividade e a facilidade de desenvolver um sistema Robusto, Flexível e Bonito. Integrando Java e o Adobe Flex Para integrarmos o Java e o Adobe Flex iremos utilizar o projeto BlazeDS de código livre da Adobe que fornece serviço remoto de mensagem, conectando o front-end do Flex aos serviços back-end do Java. Antes de se proceder a integração é necessário antes que se tenha instalados e configurados os seguintes itens: JDK 1.5.0 (ou posteriores) Apache Ant 1.6.2 juntamente com a formiga-contrib-1.0b2 Eclipse 3.2.2 ou Netbeans 6.5 Flex Bulder 3 ou Flex Builder 3 plugin para o Eclipse BlazeDs JBoss4.2.2GA Instalados e configurados todos os itens acima, o próximo passo é começar a integração Java + Adobe Flex. 1 - Criação do Serviço Java Primeiro vamos criar um projeto que vai rodar no nosso servidor, o back-end Java. Crie-o com o nome ServerBlazeDS com a seguinte estrutura:

WebContent swf WEB-INF classes flex lib Extraia do zip de download do BlazeDs e extraia o arquivo blazeds.war, vá até o diretório WEB-INF/lib e copie todas os jars e cole no mesmo diretório do seu projeto. Faça a mesma coisa com a pasta flex. Feito isso, vamos contruir nossa classe de serviço Java: public class Service { private List<Map<String,String>> collection; public List<Map<String,String>> getcollection(){ System.out.println( Begin-getCollection() ); collection = new ArrayList<Map<String,String>>(); Map<String, String> joao = new HashMap<String, String>(); joao.put( Nome, Joao ); Map<String, String> Zezinho = new HashMap<String, String>(); Zezinho.put( Nome, Zezinho ); Map<String, String> Mariazinha =new HashMap<String,String>(); Mariazinha.put( Nome, Mariazinha ); collection.add(joao); collection.add(zezinho); collection.add(mariazinha); System.out.println( end-getcollection() ); return collection; } } Essa classe implementa um método simples que retorna uma List de Maps. Isso foi feito por ser uma maneira simples de implementar um objeto não tipado na hora da

deserialização em ActionScript, onde vamos ter a mesma estrutura em um Object. É claro que podemos implementar perfeitamente um VO para a mesma operação. Na seqüência, precisamos mapear os nossos serviços como destination, ou seja, fazer com que nossa aplicação possa invocar métodos da nossa classe de serviço distribuída dentro de nosso servidor Java. Dentro da pasta flex abra o arquivo remoting-config.xml e adicione nossa classe Service como destination. <destination id= myservice > <properties> <source>exmplo.amf.ds.service</source> <scope>application</scope> </properties> </destination> Lembre-se do id (no caso myservice ), pois será o nome que sua aplicação flex ira usar para referenciar sua classe remota. Pronto, tudo que precisamos em nosso servidor já foi configurado, agora precisamos criar nosso cliente Flex para acessar nosso serviço. 2-Criação do Flex Client Agora utilizando o Plug-in do Flex Builder podemos seguir os passos New> Flex Project> digite o nome do projeto como ClientBlazeDs e finish, por padrão o plug-in já cria uma Application para você com o mesmo nome do projeto, mais ou menos assim. <?xml version= 1.0 encoding= utf-8?> <mx:application xmlns:mx= http://www.adobe.com/2006/mxml layout= absolute > </mx:application Tudo que escrevermos precisa estar dentro desta tag Application porque é onde o compilador flex vai considerar como base para gerar nosso swf. Antes de começar a codificar precisamos indicar ao nosso compilador onde ele deve ler nosso arquivo servideconfig.xml tambem dentro da pasta flex, então clique com o botão direito em cima do projeto, vá em Properties>Flex Compiler>Aditional compiler argumes e adicione: -context-root ServerBlazeDS -services <DIR_PROJETO>\ ServerBlazeDS \WebContent\WEB-INF\flex\services-config.xml Recapitulando:

1) Nossa aplicação terá que fazer uma requisição para nosso serviço Java, para isso vamos utilizar um componente chamado RemoteObject que irá fazer a chamada assíncrona de nosso método. 2) Para mostrar de alguma forma esses dados, vamos utilizar o DataGrid para exibição de listas de objetos. <?xml version= 1.0 encoding= utf-8?> <mx:application xmlns:mx= http://www.adobe.com/2006/mxml layout= absolute creationcomplete= init() > <mx:script> <![CDATA[ import mx.controls.alert; import mx.collections.arraycollection; import mx.rpc.events.resultevent; [Bindable] private var collection:arraycollection; private function init():void{ ROService.getCollection(); } private function onresult(event:resultevent):void{ collection = event.result? event.result as ArrayCollection : new ArrayCollection(); } ]]> </mx:script> <mx:remoteobject id= ROService destination= myservice requesttimeout= 1 > <mx:method name= getcollection result= onresult(event) fault= {Alert.show( error de conexão)} /> </mx:remoteobject> <mx:panel width= 384 height= 314 layout= absolute verticalcenter= 0 horizontalcenter= 0 > <mx:form width= 100% height= 100% > <mx:datagrid id= grd width= 100% height= 100% dataprovider= {collection} > </mx:datagrid> </mx:form>

</mx:panel> </mx:application> 3-Empacotando e distribuindo a aplicação: Vamos criar dentro da pasta swf uma pagina para carregar nosso arquivo *.swf gerado pelo nosso cliente: <html> <head> <meta http-equiv= Content-Type content= text/html; charset=utf-8 /> <title></title> <style> body { margin: 0px; overflow:hidden } </style> <script language= JavaScript type= text/javascript > </script> </head> <body scroll= no > <object classid= clsid:d27cdb6e-ae6d-11cf-96b8-444553540000 id= callcenter width= 100% height= 100% codebase= http://fpdownload.macromedia.com/get/flashplayer/curren t/swflash.cab > <param name= movie value= http://localhost: 8080/ServerBlazeDS/swf/ClientBlazeDS.swf /> <param name= quality value= high /> <param name= bgcolor value= #869ca7 /> <param name= allowscriptaccess value= samedomain /> <embed src= ClientBlazeDS.swf quality= high bgcolor= #869ca7 width= 100% height= 100% name= callcenter align= middle play= true loop= false quality= high allowscriptaccess= samedomain type= application/x-shockwave-flash pluginspage= http://www.adobe.com/go/getflashplayer > </embed>

</object> </body> </html> Agora copie o swf gerado no seu projeto flex dentro da pasta bin-debug para pasta swf do seu projeto servidor, execute o ant de deploy. <project name= BlazeDS-ANT default= pack-blaze > <property name= deploy.dir value=../deploy /> <property name= output.dir value=../output /> <target name= create-directories > <echo>creating output Directories &</echo> <mkdir dir= ${deploy.dir} /> <mkdir dir= ${output.dir} /> <mkdir dir= ${output.dir}/blaze /> <mkdir dir= ${output.dir}/blaze/web-inf/classes /> <mkdir dir= ${output.dir}/blaze/swf /> <echo>done.</echo> </target> <property name= sourceblaze.dir value=../../serverblazeds/src/ /> <target name= clean > <echo>deleting build temp DIR &</echo> <delete dir= ${output.dir}/blaze /> <mkdir dir= ${output.dir}/blaze /> <mkdir dir= ${output.dir}/blaze/web-inf/classes /> <mkdir dir= ${output.dir}/blaze/web-inf/lib /> <echo>done.</echo> </target> <target name= build-blaze depends= create-directories > <echo>compiling classes &</echo> <javac destdir= ${output.dir}/blaze/web-inf/classes encoding= iso-8859-1 debug= on > <src path= ${sourceblaze.dir} /> <classpath> <pathelement path= ${classpath} />

<fileset dir= ${sourceblaze.dir}/../webcontent/web-inf/lib > <include name= **/*.jar /> </fileset> </classpath> </javac> <echo>done Compiling.</echo> <echo>copying.swf.</echo> <copy todir= ${output.dir}/blaze > <fileset dir= ${sourceblaze.dir}/../webcontent > <include name= **/*.* /> <exclude name= **/*.svn /> </fileset> </copy> <echo>done.</echo> </target> <target name= pack-blaze depends= build-blaze > <echo>packing WebAPP on WAR file &</echo> <jar destfile= ${deploy.dir}/serverblazeds.war basedir= $ {output.dir}/blaze > </jar> <echo>done.</echo> </target> </project> Pronto. Agora é só testar a aplicação no servidor via browser (navegador) e você terá o Flex acessando os objetos Java. Referências http://opensource.adobe.com http://jsatriani.wordpress.com http://pt.wikipedia.org/wiki/java_(linguagem_de_programa%c3%a7%c3%a3o)