Você está na página 1de 39

Integrando Adobe Flex + BlazeDS + SpringFramework + Hibernate - Uma Solução OpenSource para S... http://blog.digows.com/integrando-adobe-flex-blazeds-springframework-hibernate-uma-soluo-opensou...

Rodrigo Fraga on Flex and Java


Java, Adobe Flex, Adobe AIR, Arquitetura de Software e Práticas de Desenvolvimento de Software.

Home Labs Contato

Seja Bem Vindo!


12:07:57 | Quinta, 01 Janeiro 2009
Neste Blog você encontrará tutoriais,
visões particulares e screencasts.
Sinta-se a vontade para criticar, opinar ou
elogiar.

Tecnologia Adobe FLEX


SP, PR e DF: Cursos, Exemplos,
Treinamentos e Licenciamento Adobe.
www.eng.com.br/flex

1 de 39 1/1/2009 12:07
Integrando Adobe Flex + BlazeDS + SpringFramework + Hibernate - Uma Solução OpenSource para S... http://blog.digows.com/integrando-adobe-flex-blazeds-springframework-hibernate-uma-soluo-opensou...

JAN Adobe BlazeDS, Adobe Flex, Hibernate, Java, RIA, Spring Framework
Add Categorias Arquivos
21 Integrando Adobe Flex + BlazeDS + SpringFramework +
Hibernate - Uma Solução OpenSource para Sistemas Web. Adobe (14) abril 2008
(Parte 1) Adobe AIR (2) março 2008
Adobe Flex (13) janeiro 2008
Adobe BlazeDS (2)
dezembro 2007
AMFPHP (2)
novembro 2007
Google (1) setembro 2007
Java (3) julho 2007
Hibernate (2)
Spring Framework (2)

PHP (3)
RIA (2)
Vários (5)

Posts recentes
Porquê Flex? / Why Flex?
Manifesto Flex brasil
Integrando Adobe Flex + BlazeDS +
SpringFramework + Hibernate - Uma Solução
OpenSource para Sistemas Web. (Parte 2 - Final)
Integrando Adobe Flex + BlazeDS +
SpringFramework + Hibernate - Uma Solução
OpenSource para Sistemas Web. (Parte 1)
Forum sobre AdobeFlex!

Tags

Adobe Flash Player Adobe Flex


Adobe Flex Builder BlazeDS CSS Flex Builder Flex
Builder 3 Google Google Toolbar Hibernate Java
Modules SpringFramework Vários

2 de 39 1/1/2009 12:07
Integrando Adobe Flex + BlazeDS + SpringFramework + Hibernate - Uma Solução OpenSource para S... http://blog.digows.com/integrando-adobe-flex-blazeds-springframework-hibernate-uma-soluo-opensou...

Olá Pessoal,

Hoje vou começar algo que estou prometendo há um bom tempo! A integração dos seguintes
frameworks:

Adobe Flex;

Adobe BlazeDS;

Spring Framework;

Hibernate;

Introdução

No mundo de desenvolvimento WEB principalmente com Java, temos problemas quanto ao


desenvolvimento de interfaces, como incompatibilidade entre browsers, desenvolviemento
lento, e outros detalhes que muitos vivenciam diariamente.

Existem soluções que prometem como o JSF por exemplo, mas como dizem "A primeira
experiência em Flex o programador Java nunca esquece." logo quero convidar você que
vem do mundo do Java, para conhecer uma solução de desenvolvimento de interfaces com o
AdobeFlex.

Apresentando Adobe Flex e Adobe BlazeDS

3 de 39 1/1/2009 12:07
Integrando Adobe Flex + BlazeDS + SpringFramework + Hibernate - Uma Solução OpenSource para S... http://blog.digows.com/integrando-adobe-flex-blazeds-springframework-hibernate-uma-soluo-opensou...

Adobe Flex

Do Flex não vou falar muito, também por que neste blog você pode encontrar muito
conteúdo explicativo como por exemplo este link: http://blog.digows.com/?p=32
algumas abordagens ali já estão desatualizadas, porém a essência é a mesma como por
exemplo algumas vantagens de se usar Flex:

O Flex é executado a partir de uma máquina virtual, logo o programador apenas se


preocupa em desenvolver a interface não em programar compatibilidade entre
browsers.

Você programa sua interface totalmente orientada a objetos, isso visa reuso de
componentes, desenvolvimento de módulos e afins.

Há várias maneiras de comunicar o Java com o Flex, mas em destaque é que você
pode trocar objetos Java/Flex por um protocolo que provê compactação e tranferência
binária, este é o AMF.

Adobe BlazeDS

O BlazeDS é um produto OpenSource (Licença LGPL v3) que corresponde à tecnologia


JAVA server-side que dá suporte tanto para o Remoting assim como ao Messaging de objetos
trocados entre o Java e o Flex/Flash.

Com o BlazeDS você pode gerar vários tipos de canais de conexão, um destaque muito
importante para toda a comunidade Flex/Flash mundial, é que o serviço de data-push
também foi disponibilizado de graça!, para quem não conhece, é algo semelhante ao Pattern
Observer.

Integrando o Adobe Flex com o BlazeDS

4 de 39 1/1/2009 12:07
Integrando Adobe Flex + BlazeDS + SpringFramework + Hibernate - Uma Solução OpenSource para S... http://blog.digows.com/integrando-adobe-flex-blazeds-springframework-hibernate-uma-soluo-opensou...

Requerimentos:

Eclipse 3.3;

Adobe Flex Builder 3 Plugin;


*No título apresento como solução OpenSource, e o FlexBuilder 3 é pago, mas irei
fazer uso apenas para facilitar o entendimento, caso seja estudante, baixe o
FlexBuilder 2 é de graça para estudantes ou afins, caso não, baixe o Flex SDK e
compile com Ant ou com o FlashDeveloper que é de graça.

Adobe BlazeDS;
*É recomendável que baixe a documentação do BlazeDS, para futuros estudos.

Tomcat 6.0;

Ok, Vamos começar!

Extraia o Eclipse 3.3 em algum lugar, por exemplo C:/Desenvolvimento/Eclipse


3.3/

Instale o Plugin do Flex no Eclipse, quando pedir o local aonde instalar o flex sdk, você
pode selecionar em C:/Desenvolvimento/Frameworks/Adobe/

Após baixado o BlazeDS, perceba que ele vem vários arquivos, o que importa agora são os
seguintes:

blazeds-samples.war

blazeds.war

No blazeds-samples.war como o próprio nome diz, contém aplicações de exemplo, como


implementação do data-push, um chat, e etc...

O blazeds.war contém tudo o que é necessário para podermos configurar nossa aplicação.

Você deve ter percebido que no arquivo que você baixou o BlazeDS, contém um Tomcat já
com todas as libs necessárias e etc.. Algumas libs ali tem reelevância como a flex-tomcat-
common.jar e flex-tomcat-server.jar mas vamos deixar isso para outro artigo =)

Apesar do BlazeDS já vir com um Tomcat, eu estarei usando meu próprio Tomcat 6.0.

5 de 39 1/1/2009 12:07
Integrando Adobe Flex + BlazeDS + SpringFramework + Hibernate - Uma Solução OpenSource para S... http://blog.digows.com/integrando-adobe-flex-blazeds-springframework-hibernate-uma-soluo-opensou...

Abra seu Eclipse, e faça como no screencast abaixo que mostra como criar seu projeto no
Eclipse 3.3:

Link Externo

*Se na aba "Problems" estiver com o erro "Cannot create HTML wrapper. Right-click
here to recreate folder html-template." clique com o botão direito, e clique em Recreate
HTML Templates. Considero isso um bug do FlexBuilder.

Com o projeto criado, vamos adicionar as libs necessárias para a execução do BlazeDS, para
isso abra o blazeds.war (Com um Winrar da vida) e copie todos os Jars contidos na pasta
WEB-INF\lib para o nosso projeto na pasta WebContent\WEB-INF\lib.

Com as Libs adicionadas, vamos criar um serviço no java que servirá como exemplo de como
o Flex pode acessar uma classe java através do BlazeDS.

Para isso na pasta src_java, crie uma estrutura de pacotes, por exemplo:

com/digows/artigos/JavaFlex/model/service/
com/digows/artigos/JavaFlex/model/entity/

6 de 39 1/1/2009 12:07
Integrando Adobe Flex + BlazeDS + SpringFramework + Hibernate - Uma Solução OpenSource para S... http://blog.digows.com/integrando-adobe-flex-blazeds-springframework-hibernate-uma-soluo-opensou...

Dentro
PLAINdo
TEXT
package entity crie uma classe java com o nome de Cargo com o seguinte
conteúdo:

Cargo.java

JAVA:
1. package com.digows.artigos.JavaFlex.model.entity;
2.
3. public class Cargo {
4.
5. private long idCargo;
6. private String dsCargo;
7.
8. public long getIdCargo() {
9. return idCargo;
10. }
11. public void setIdCargo(long idCargo) {
12. this.idCargo = idCargo;
13. }
14. public String getDsCargo() {
15. return dsCargo;
16. }
17. public void setDsCargo(String dsCargo) {
18. this.dsCargo = dsCargo;
19. }
20. }

PLAIN TEXT
Entities (ou Entidades, nenhuma relação com Entity Beans) são objetos que possuem uma
identidade única.

Um carrinho de compras numa loja virtual web não é igual a outro, não importa que possuam
os mesmos produtos, o carrinho A é o carrinho do usuário A, o carrinho B é do usuário B.
Mesmo que contenham os mesmos produtos você não pode exibir o carrinho B ao usuário A,
eles são diferentes! O carrinho neste exemplo segue o Padrão Entity, ele é uma entidade de
negócios única.

Dentro do package services crie uma classe java com o nome de CargoService com o
seguinte conteúdo:

CargoService.java

7 de 39 1/1/2009 12:07
Integrando Adobe Flex + BlazeDS + SpringFramework + Hibernate - Uma Solução OpenSource para S... http://blog.digows.com/integrando-adobe-flex-blazeds-springframework-hibernate-uma-soluo-opensou...

JAVA:
1. package com.digows.artigos.JavaFlex.model.service;
2.
3. import java.util.ArrayList;
4. import java.util.List;
5.
6. import com.digows.artigos.JavaFlex.model.entity.Cargo;
7.
8. public class CargoService {
9.
10. public Cargo save(Cargo p_cargo) {
11. System.out.println("Salvou o Cargo: "+p_cargo.getDsCargo());
12. return p_cargo;
13. }
14.
15. public void remove(Cargo p_cargo) {
16. System.out.println("Excluiu o Cargo: "+p_cargo.getDsCargo());
17. }
18.
19. public List<cargo> getList() {
20. return new ArrayList<cargo>();
21. }
22.
23. public Cargo findByPrimaryKey() {
24. return new Cargo();
25. }
26. }

8 de 39 1/1/2009 12:07
Integrando Adobe Flex + BlazeDS + SpringFramework + Hibernate - Uma Solução OpenSource para S... http://blog.digows.com/integrando-adobe-flex-blazeds-springframework-hibernate-uma-soluo-opensou...

PLAIN TEXT
Services são classes que não implementam diretamente as regras de negócio da aplicação,
apenas coordenam a interação entre os componentes, elas são quase sempre beans
gerenciados pelo Spring. É muito importante que as classes do tipo Services não
implementem as regras de negócio, elas apenas atuam como Façades coordenando as
interações.

O CargoService claro não proverá persistência a um banco de dados, os sysouts ali são
apenas para abstração da intragração.

Com as classes javas feitas, vamos a configuração dos channels do BlazeDS, para isso no
web.xml contido dentro da pasta WebContent\WEB-INF\web.xml, deixe como mostrado
abaixo:

web.xml

9 de 39 1/1/2009 12:07
Integrando Adobe Flex + BlazeDS + SpringFramework + Hibernate - Uma Solução OpenSource para S... http://blog.digows.com/integrando-adobe-flex-blazeds-springframework-hibernate-uma-soluo-opensou...

XML:
1. <?xml version="1.0" encoding="UTF-8"?>
2. <!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
3. "http://java.sun.com/dtd/web-app_2_3.dtd">
4. <web-app>
5. <display-name>ArquiteturaJavaFlex</display-name>
6.
7. <!-- MessageBroker Servlet -->
8. <servlet>
9. <servlet-name>MessageBrokerServlet</servlet-name>
10. <display-name>MessageBrokerServlet</display-name>
11. <servlet-class>
12. flex.messaging.MessageBrokerServlet
13. </servlet-class>
14. <init-param>
15. <param-name>services.configuration.file</param-name>
16. <param-value>/WEB-INF/flex/services-config.xml</param-value>
17. </init-param>
18. <init-param>
19. <param-name>flex.write.path</param-name>
20. <param-value>/WEB-INF/flex</param-value>
21. </init-param>
22. <load-on-startup>1</load-on-startup>
23. </servlet>
24. <servlet-mapping>
25. <servlet-name>MessageBrokerServlet</servlet-name>
26. <url-pattern>/messagebroker/*</url-pattern>
27. </servlet-mapping>
28.
29. <welcome-file-list>
30. <welcome-file>index.html</welcome-file>
31. <welcome-file>index.htm</welcome-file>
32. <welcome-file>index.jsp</welcome-file>
33. </welcome-file-list>
34. </web-app>

10 de 39 1/1/2009 12:07
Integrando Adobe Flex + BlazeDS + SpringFramework + Hibernate - Uma Solução OpenSource para S... http://blog.digows.com/integrando-adobe-flex-blazeds-springframework-hibernate-uma-soluo-opensou...

PLAIN TEXT
Perceba que ao gerar a Servlet Java, é passado por parâmetro um arquivo dentro da pasta
WebContent\WEB-INF\flex, crie um arquivo chamado services-config.xml como
referênciado, este arquivo é o que contém Factorys, Channels, LogConfigs. Nós vamos
usar apenas um tipo de serviço que o BlazeDS implementa, que o canal de AMF3 simples,
para isso adicione o seguinte conteúdo:

services-config.xml

11 de 39 1/1/2009 12:07
Integrando Adobe Flex + BlazeDS + SpringFramework + Hibernate - Uma Solução OpenSource para S... http://blog.digows.com/integrando-adobe-flex-blazeds-springframework-hibernate-uma-soluo-opensou...

XML:
1. <?xml version="1.0" encoding="UTF-8"?>
2. <services-config>
3. <services>
4. <service-include file-path="remoting-config.xml" />
5.
6. <default-channels>
7. <channel ref="my-amf"/>
8. </default-channels>
9.
10. </services>
11.
12. <channels>
13. <channel-definition id="my-amf" class="mx.messaging.channels.AMFChannel"
14. <endpoint url="http://{server.name}:{server.port}/{context.root}/messagebroker/amf"
15. <properties>
16. <polling-enabled>false</polling-enabled>
17. </properties>
18. </channel-definition>
19. </channels>
20.
21. <logging>
22. <!-- You may also use flex.messaging.log.ServletLogTarget -->
23. <target class="flex.messaging.log.ConsoleTarget" level="Error">
24. <properties>
25. <prefix>[BlazeDS] </prefix>
26. <includeDate>false</includeDate>
27. <includeTime>false</includeTime>
28. <includeLevel>true</includeLevel>
29. <includeCategory>false</includeCategory>
30. </properties>
31. <filters>
32. <!--<pattern>Endpoint.*</pattern>-->
33. <!--<pattern>Service.*</pattern>-->
34. <pattern>Message.*</pattern>
35. <pattern>DataService.*</pattern>
36. <pattern>Configuration</pattern>
37. </filters>
38. </target>
39. </logging>
40.

12 de 39 1/1/2009 12:07
Integrando Adobe Flex + BlazeDS + SpringFramework + Hibernate - Uma Solução OpenSource para S... http://blog.digows.com/integrando-adobe-flex-blazeds-springframework-hibernate-uma-soluo-opensou...

PLAIN TEXT
Perceba que é feito um include em um arquivo chamado: remoting-config.xml, então crie
um arquivo com este nome na pasta WebContent\WEB-INF\flex\. Este arquivo contém
alguns adapters, e nossos destinations, que nada mais é que o mapeamento das nossas
classes de serviços no java. Para isso adicione o seguinte conteúdo:

remoting-config.xml

XML:
1. <?xml version="1.0" encoding="UTF-8"?>
2. <service id="remoting-service"
3. class="flex.messaging.services.RemotingService">
4.
5. <adapters>
6. <adapter-definition id="java-object"
7. class="flex.messaging.services.remoting.adapters.JavaAdapter"
8. default="true" />
9. </adapters>
10.
11. <default-channels>
12. <channel ref="my-amf" />
13. </default-channels>
14.
15. <destination id="cargoService">
16. <properties>
17. <source>
18. com.digows.artigos.JavaFlex.model.service.CargoService
19. </source>
20. </properties>
21. </destination>
22.
23. </service>

13 de 39 1/1/2009 12:07
Integrando Adobe Flex + BlazeDS + SpringFramework + Hibernate - Uma Solução OpenSource para S... http://blog.digows.com/integrando-adobe-flex-blazeds-springframework-hibernate-uma-soluo-opensou...

A estrutura deverá ficar igual apresentado abaixo:

Para testar se tudo está ok, de um botão direito sobre o Projeto JavaFlex, e clique em Run
As -> Run on Server. Na proxima janela aberta, em server runtime deixe seleciona o
"Apache Tomcat v6.0" e clique em finish, o Servidor irá iniciar, observer a aba Console
para verificar possíveis erros. Se alguma Exception tiver ocorrida, verifique os passos e faça
novamente.

Acessando o serviço Java através do remoting do BlazeDS

14 de 39 1/1/2009 12:07
Integrando Adobe Flex + BlazeDS + SpringFramework + Hibernate - Uma Solução OpenSource para S... http://blog.digows.com/integrando-adobe-flex-blazeds-springframework-hibernate-uma-soluo-opensou...

Como
PLAIN
nosso
TEXTserviço já foi levantado, basta gerarmos um form simples para testar nosso
serviço, para isso na pasta src_flex, crie a seguinte estrutura de pastas:

com/digows/artigos/JavaFlex/view/entity/
com/digows/artigos/JavaFlex/view/screen/

Dentro do package Entity crie uma Classe ActionScript com o nome de Cargo com o
seguinte conteúdo:

Cargo.as

15 de 39 1/1/2009 12:07
Integrando Adobe Flex + BlazeDS + SpringFramework + Hibernate - Uma Solução OpenSource para S... http://blog.digows.com/integrando-adobe-flex-blazeds-springframework-hibernate-uma-soluo-opensou...

Actionscript:
1. package com.digows.artigos.JavaFlex.view.entity
2. {
3. [RemoteClass(alias="com.digows.artigos.JavaFlex.model.entity.Cargo")]
4. [Bindable]
5. public class Cargo
6. {
7. public var idCargo:Number;
8. public var dsCargo:String;
9. }
10. }

PLAIN TEXT
A Classe Cargo do Flex, é nada mais nada menos do que o espelho do Entity do java, nesta
classe não realizei get's set's. Para fazer o espelho dos objetos usei a metatag
[RemoteClass] mapeando a localização exata (Com package e nome da Classe) da mesma
classe no java. A metatag Bindable é uma annotation muito importante, mais agora vamos
apenas abstrair ela.

E dentro do package Screen, crie um arquivo MXML com o nome de CargoForm com o
seguinte conteúdo:

CargoForm.mxml

16 de 39 1/1/2009 12:07
Integrando Adobe Flex + BlazeDS + SpringFramework + Hibernate - Uma Solução OpenSource para S... http://blog.digows.com/integrando-adobe-flex-blazeds-springframework-hibernate-uma-soluo-opensou...

XML:
1. <?xml version="1.0" encoding="utf-8"?>
2. <mx:TitleWindow xmlns:mx="http://www.adobe.com/2006/mxml"
3. layout="vertical" width="424" height="234">
4.
5. <mx:Form width="100%" height="100%" defaultButton="{btSalvar}">
6. <mx:FormHeading label="Gerenciamento de Cargos" width="100%"/>
7. <mx:FormItem label="ID:" width="127">
8. <mx:TextInput width="100%" id="txtIdCargo"/>
9. </mx:FormItem>
10. <mx:FormItem label="Cargo:" width="345">
11. <mx:TextInput width="100%" id="txtDsCargo"/>
12. </mx:FormItem>
13. </mx:Form>
14.
15. <mx:ControlBar horizontalAlign="center">
16. <mx:Button label="Salvar" id="btSalvar" click="save()" textAlign=
17. </mx:ControlBar>
18.
19. <mx:RemoteObject id="cargoService"
20. fault="onFault(event)" destination="cargoService"/>
21.
22. <mx:Script>
23. <![CDATA[
24. import com.digows.artigos.JavaFlex.view.entity.Cargo;
25. import mx.rpc.events.ResultEvent;
26. import mx.rpc.events.FaultEvent;
27. import mx.controls.Alert;
28.
29. private var cargo:Cargo;
30.
31. public function save():void
32. {
33. this.cargo = new Cargo();
34. this.cargo.idCargo = new Number(txtIdCargo.text);
35. this.cargo.dsCargo = txtDsCargo.text;
36.
37. cargoService.addEventListener(ResultEvent.RESULT,
38. //No flex toda requisicao é assincrona,
39. //Entao devo programar um funcao quando
40. //a requisicao terminar de executar

17 de 39 1/1/2009 12:07
Integrando Adobe Flex + BlazeDS + SpringFramework + Hibernate - Uma Solução OpenSource para S... http://blog.digows.com/integrando-adobe-flex-blazeds-springframework-hibernate-uma-soluo-opensou...

PLAIN TEXT
Perceba que acoplei muito código neste arquivo, isto não é uma boa prática, nos próximos
artigos irei desaclopar as responsabilidades em camadas.

Para testar se tudo está ok, no arquivo JavaFlex.mxml que está na raiz da pasta src_flex
renomeie para index.mxml, de um botão direito e clique em Set as Default Application, e
deixe ele com o seguinte conteúdo:

index.mxml

XML:
1. <?xml version="1.0" encoding="utf-8"?>
2. <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml"
3. layout="vertical" verticalAlign="middle" horizontalAlign="center"
4. xmlns:screen="com.digows.artigos.JavaFlex.view.screen.*">
5.
6. <screen:CargoForm/>
7.
8. </mx:Application>

E para finalizar vamos dizer ao compilador do Flex que existe um servidor de AMF levantado,
para isso de um botão direito no projeto JavaFlex -> Properties -> Selecione Flex
Compiler -> em Additional compiler arguments adicione a linha e ok:

-services "../WebContent/WEB-INF/flex/services-config.xml"

Para Executar, de um botão direito sobre o projeto JavaFlex, e clique em Run As -> Run on
Server e Finish.

Se tudo correr bem, você verá a descrição que você digitou no flex aparecerá no console do
Tomcat.

Bom finalizo aqui a primeira parte desta poderosa integração, logo logo posto o resto.

Link do Source do Projeto:


Download

Abraço Pessoal!!

\o/

Te Amuh Liz!! =******

18 de 39 1/1/2009 12:07
Integrando Adobe Flex + BlazeDS + SpringFramework + Hibernate - Uma Solução OpenSource para S... http://blog.digows.com/integrando-adobe-flex-blazeds-springframework-hibernate-uma-soluo-opensou...

Hospedagem é na Insite 2.130 vídeo aulas java


60 GB de espaço, 1200 GB de tráfego FLEX, JAVA, j2me, jsp,delphi,oracle Aulas c/
Suporte por 0800 e 20 dias de teste prof Pós-Graduado

Author: digows

19 de 39 1/1/2009 12:07
Integrando Adobe Flex + BlazeDS + SpringFramework + Hibernate - Uma Solução OpenSource para S... http://blog.digows.com/integrando-adobe-flex-blazeds-springframework-hibernate-uma-soluo-opensou...

57 Comentários

20 de 39 1/1/2009 12:07
Integrando Adobe Flex + BlazeDS + SpringFramework + Hibernate - Uma Solução OpenSource para S... http://blog.digows.com/integrando-adobe-flex-blazeds-springframework-hibernate-uma-soluo-opensou...

Eberton
21 de janeiro de 2008

Rodrigo Parabéns cara…


Com atitudes assim que nossa comunidade vai crescer cada vez mais, espero que
esse artigo venha a incentivar todos aqueles que usam o Flex com outras
tecnologias de back-end.

Parabéns…

Erko Bridee
21 de janeiro de 2008

muito obrigado =]

já estou divulgando o link desse material


[]’s

Erko Bridee
21 de janeiro de 2008

ah esqueci de algo

a compatibilidade do BlazeDS com versões do tomcat 5.x, funciona?

ps.: muita gente questiona isso

21 de 39 1/1/2009 12:07
Integrando Adobe Flex + BlazeDS + SpringFramework + Hibernate - Uma Solução OpenSource para S... http://blog.digows.com/integrando-adobe-flex-blazeds-springframework-hibernate-uma-soluo-opensou...

Rodrigo Pereira Fraga


21 de janeiro de 2008

Olá,

Na documentação, está assim:

Application Servers
Tomcat 6.0.14
JBoss 4.2.2
WebLogic 10 MP1
WebSphere 6.1.0.13

Perceba que ele fala somente em Tomcat 6,


não testei por que não tenho o tomcat 5.x aqui mas…
acredito que pegando as libs que vem com o tomcat que vem junto ao blaze,
também irá funcionar.

Daniel Souza
21 de janeiro de 2008

galera, seguindo o screncast, fiz como ele, mais me da esse error, alguem da uma
força ?

unable to open ‘C:\eclipse\plugins\com.adobe.flexbuilder.project_2.0.155577


\resources\frameworks/flex-config.xml’

Rodrigo Pereira Fraga


21 de janeiro de 2008

Provavelmente o plugin do FlexBuilder não foi devidamente instalado, lembrando


também que o exemplo faz uso do flex builder 3.

Marvin Herman Froeder


21 de janeiro de 2008

Mal posso esperar para ver esse exemplo completo.

Parabens pela iniciativa.

VELO

22 de 39 1/1/2009 12:07
Integrando Adobe Flex + BlazeDS + SpringFramework + Hibernate - Uma Solução OpenSource para S... http://blog.digows.com/integrando-adobe-flex-blazeds-springframework-hibernate-uma-soluo-opensou...

Liz
21 de janeiro de 2008

é!…bom…o FLex…ele…bem,ele…=X! não …vou começar falando do Java! é


melhor!…bom o Java…oQ é isto mesmO??…o.O! ah! não seii…e nem kero saber!!
na verdade só entendi uma frase! a parte que me toca: “Te amuh Liz =***”, e essa
na minha opinião é a melhor linguagem de todas…não tem pra Java,não tem pra
ninguém!! HIUihihiahh…:P! e o melHOr…tOdO mundo sabe!;)!
Te amoo minHa vidah!
mtooooo!;***
de tdOo meu coraçãoO!(L)
vocÊ é o melhoor!

Beto
22 de janeiro de 2008

Rapaz,

era tudo q tava precisando.

show de bola…

Leandro Quingerski
22 de janeiro de 2008

Boa!!!

As férias rendeu.. huahuehahu

abraços.

Janderson Fernandes Cardoso


22 de janeiro de 2008

Parabéns mais uma vez rodrigo, através do seu blog tenho aprendido muito coisa do
adobe flex, mais posso te pedir um favor , considero o Flex a grande aposta para
o novo modelo de web (3.0), mais não sai da minha cabeça que o adobe Air é
também o futuro do dekstop (2.0), será que tem como demostrar no seu blog como
faria este mesmo exemplo que está bem sugestivo usando o adobe Air, eu preciso
muito de um exemplo do adobe air com backend java, já procurei mais não consigo
achar, desde de já obrigado.

23 de 39 1/1/2009 12:07
Integrando Adobe Flex + BlazeDS + SpringFramework + Hibernate - Uma Solução OpenSource para S... http://blog.digows.com/integrando-adobe-flex-blazeds-springframework-hibernate-uma-soluo-opensou...

George Tavares
25 de janeiro de 2008

Muito interessante o exemplo.


Estudo a algum tempo Flex, e sempre usei Java , com EJB3 e Hibernate.
Uma duvida que sempre tive integrando essas tecnologias é como funciona a esse
mapeamento de objetos java para flex, quando o objeto java possui
instrumentacao, mais especificamente, as colecoes lazy do hibernate. O BlazeDS
tem a inteligencia de voltar ao java, abrir uma sessao do hibernate e puxar a
colecao lazy? Como resolver essa situacao?

Rodrigo Pereira Fraga


25 de janeiro de 2008

Olá George, isso realmente é um problema na verdade não só com o flex mas de
aplicações WEB em geral.
Com html, (Request, Response) o pessoal usa o Pattern “OpenSessionInView” com
o hibernate então consegue um workaround (contorno do problema).
Com o LCDS, é possível fazer tais manipulações com o banco de dados, pois ele tem
um módulo excluisivo para trabalhar com os Dados (Data Manager se não me
engano.)
Já com o BlazeDS, esse módulo não foi disponibilizado, logo trabalhar com coleções
usando o Lazy do hibernate é um pouco complicado. Existem workarounds para
isso, aqui nesse link já abri uma discussão sobre isso ->
http://tech.groups.yahoo.com/group/flexcoders/message/98655
Ali há algumas idéias de como você pode resolver isso. Eu na verdade ainda não
defini um jeito bacana de usar Lazy.
Mas acredito que ainda assim, dá para implementar uma espécie de
“OpenSessionInViewFlex” heehehee
Se achar outra solução, me avise.
Obrigado.

24 de 39 1/1/2009 12:07
Integrando Adobe Flex + BlazeDS + SpringFramework + Hibernate - Uma Solução OpenSource para S... http://blog.digows.com/integrando-adobe-flex-blazeds-springframework-hibernate-uma-soluo-opensou...

George Tavares
25 de janeiro de 2008

Obrigado Rodrigo ,

Na verdade o OpenSessionInView ate seria facil de implementar com o Spring, mas


o problema eh outro, eh questao que com Flex eh feito uma requisicao e vem os
objetos. Numa segunda requisicao eh que iriamos andar nas relacoes, ai nem o
OpenSessionInVIew resolve, porque o objeto que tinhamos, esta em outra conexao
do banco de dados. Teriamos que ressussitar o objeto na nova conexao do
banco/hibernate. Vou estudar o assunto. Obrigado

Integrando Adobe Flex + BlazeDS + SpringFramework + Hibernate - Uma


Solução OpenSource para Sistemas Web. (Parte 2 - Final) - Rodrigo Fraga -
RIA Evangelist
27 de janeiro de 2008

[...] lugar, quero agradecer a todos pelo feedback do post anterior, isto é motivante
e me dá ânimo em concluir este, e outros que [...]

FlexDev » Blog Archive » Artigo Flex+BlazeDS+Spring+Hibernate


28 de janeiro de 2008

[...] Parte 1 Parte 2 [...]

Alexandre Ferreira
28 de janeiro de 2008

Amigo, por que se torna tão difícil a fusão entre o BladeDS + Java no Flex Builder
2?

Rodrigo Pereira Fraga


28 de janeiro de 2008

Mas qual a dificuldade?

O Flex Builder é somente uma IDE, o BlazeDS é apenas um Framework que roda no
back-end, resumindo… não tem muito a ver..

=)

25 de 39 1/1/2009 12:07
Integrando Adobe Flex + BlazeDS + SpringFramework + Hibernate - Uma Solução OpenSource para S... http://blog.digows.com/integrando-adobe-flex-blazeds-springframework-hibernate-uma-soluo-opensou...

Ricardo
31 de janeiro de 2008

Parabens pela atitute!


Mas estou tentando seguir a risca mas não consigo, que plugin vc usa no eclipse
para criar um projeto web dinamico?

Estou usando eclipse 3.3.1.1.

Rodrigo Pereira Fraga


31 de janeiro de 2008

Nenhum, apenas baixo o Eclipse 3.3.x.x edição JEE.

http://www.eclipse.org/downloads/

Abraços.

\o/

Ricardo
1 de fevereiro de 2008

Blz..

Estava usando Eclipse o classic.

Coisas de iniciante.
Valeu!

Rodrigo Pereira Fraga


7 de fevereiro de 2008

Valew kra pelo feedback!

26 de 39 1/1/2009 12:07
Integrando Adobe Flex + BlazeDS + SpringFramework + Hibernate - Uma Solução OpenSource para S... http://blog.digows.com/integrando-adobe-flex-blazeds-springframework-hibernate-uma-soluo-opensou...

Janderson
10 de fevereiro de 2008

Vlw Rodrigo, parabéns mais uma vez pelo artigo, muito bom. Fiz o exemplo como o
artigo e funcionou legal, tentei adptar ao modelo que uso sem spring, usando
hibernate annotation e o flex acessando minha classe controladora, aí no flex deu
um erro que não acha o hibernate:
“[BlazeDS] [ERROR] Root cause: java.lang.NoClassDefFoundError: org/hibernate
/cfg/AnnotationConfiguration”
será que alguém pod eme ajudar? vlw

Rodrigo Pereira Fraga


10 de fevereiro de 2008

Olá Janderson,

Ao que parece vc está usando Annotations no hibernate,


Então verifique se os jars:

hibernate-annotations.jar;
hibernate-commons-annotations.jar;
ejb3-persistence.jar;

Estão no classpath do projeto.

Abraços
\o/

Janderson
10 de fevereiro de 2008

Rodrigo, se eu usar uma classe main(String[] args) para testar o hibernate ele
grava normal no mysql, mais quando tento no flex parece que ele não acha o meu
hibernate, estou 1 semana já tentando colocar o hibernate.cfg.xml em tudo que é
lugar e nada. Já não sei mais o que pode ser, conseguir criar um modelo que não
precisa do VO e está funcionado mais para minha infelicidade o hibernate não
colabora agora. De qualquer forma Muito obrigado pela sua atenção!

27 de 39 1/1/2009 12:07
Integrando Adobe Flex + BlazeDS + SpringFramework + Hibernate - Uma Solução OpenSource para S... http://blog.digows.com/integrando-adobe-flex-blazeds-springframework-hibernate-uma-soluo-opensou...

Rodrigo Pereira Fraga


10 de fevereiro de 2008

Amigo, crie um tópico no forum -> http://forum.flexbrasil.com.br/

E poste seu código, e detalhes sobre sua infra, para que possa te ajudar!

Blza?

Abraços
\o/

Janderson
10 de fevereiro de 2008

blz, vou fazer issso agora, obrigado

Abel
12 de fevereiro de 2008

Olá!

Neste exemplo, como eu faria para estar integrando com o banco de dados oracle ?

Ricardo
14 de fevereiro de 2008

Rodrigo, sou iniciante e gostaria de saber que domumentação você usou para
montar este projeto? Gostaria de saber o caminho das pedras, para que eu consiga
montar meu raciocinío.
Valeu..

Roberto
17 de fevereiro de 2008

Olá Rodrigo!

Parabéns pelo artigo.

Você conheçe algum software similar ao Flex Builder que seja opensource (ou free)?

Obrigado

28 de 39 1/1/2009 12:07
Integrando Adobe Flex + BlazeDS + SpringFramework + Hibernate - Uma Solução OpenSource para S... http://blog.digows.com/integrando-adobe-flex-blazeds-springframework-hibernate-uma-soluo-opensou...

Rodrigo Pereira Fraga


17 de fevereiro de 2008

@Roberto,

Tenta o FlashDevelop -> http://forum.flexbrasil.com.br


/viewtopic.php?f=5&t=25

É free tem um bom autocomplete para o action script! porém não tem o modo
“Desing”

Abraços!
\o/

Rodrigo Pereira Fraga


17 de fevereiro de 2008

@Ricardo,

Amigo, depende do que! eheheh

Pois na verdade quase tudo o que foi utilizado, também apresentei a documentação,
tipo do Spring, Blaze, Hibernate…

Só não falei do DomainDrivenDesing, este é muito complexo para ser abordado


aqui.

Abraços!
\o/

29 de 39 1/1/2009 12:07
Integrando Adobe Flex + BlazeDS + SpringFramework + Hibernate - Uma Solução OpenSource para S... http://blog.digows.com/integrando-adobe-flex-blazeds-springframework-hibernate-uma-soluo-opensou...

Araújo Jr.
4 de março de 2008

Olá Rodrigo, primeiro de tudo, gostaria de parabenizá-lo pelo tutorial que sem
dúvida é top de linha. Bom, eu tentei seguir o tutorial mas por conta de ser
bastante imaturo ainda na tecnologia Flex devo ter cometido algumas
barbaridades…
Aqui exibe a seguinte mensagem de erro:[faultCode:Client.Error.MessageSend
faultString:'Send failed' faultDetail:'Channel.Connect.Failed error
NetConnection.Call.Failed: HTTP: Failed: url: 'http://localhost:8080/JavaFlex
/messagebroker/amf'']
Alguma sugestão??
Saudações Respeitosas.

Rodrigo Pereira Fraga


4 de março de 2008

Olá,

Obrigado pelo feed-back Araújo.

NetConnection.Call.Failed: http://localhost:8080/JavaFlex
/messagebroker/amf

Provavelmente o serviço no Tomcat não foi devidamente levantado.

Para validar se está tudo ok, coloque esta URL no browser: http://localhost:8080
/JavaFlex/messagebroker/amf

Se não aparecer um 404 está OK, para maiores detalhes, verifique o Log do tomcat
que provavelmente é exibido no console do eclipse.

Manifesto Flex brasil - Rodrigo Fraga - RIA Evangelist


16 de março de 2008

[...] Integrando Adobe Flex + BlazeDS + SpringFramework + Hibernate. [Parte1]


[Parte2] Por que ele é relevante: Mostro com detalhes como integrar frameworks de
mercado mais [...]

30 de 39 1/1/2009 12:07
Integrando Adobe Flex + BlazeDS + SpringFramework + Hibernate - Uma Solução OpenSource para S... http://blog.digows.com/integrando-adobe-flex-blazeds-springframework-hibernate-uma-soluo-opensou...

Fábio
26 de março de 2008

Olá Rodrigo, parabéns pelo tutorial. Está muito legal.


Bom tive a mesma mensagem de erro que o Araujo Jr.
“http://localhost:8080/JavaFlex/messagebroker/amf”. No console do Eclipse exibe a
mensagem que o MessageBroker não está acessível. Sou iniciante no eclipse, já
configurei o tomcat um monte de vezes. Tem alguma idéia do que pode ser??
Obrigado,

Abraços…

Cristiano
28 de março de 2008

Olá,

estou iniciando com Flex e Java e estou tendo dificuldade em fazer funcionar o
exemplo deste tutorial. quando executo o seguinte erro aparece no tomcat:

The processing instruction target matching “[xX][mM][lL]” is not allowed.

George Queiroz
2 de abril de 2008

Olá Rodrigo…

Então a integração funciona uma beleza, mais me diga o seguinte. Sendo que o
hibernate para identificar uma entidade para save ou update ele se baseia no id da
mesma nulo ou não, como funciona ao enviar um valor do flex+blazeds para uma
entidade do hibernate, visto que quando é int ou Number ele envia zero?

George

31 de 39 1/1/2009 12:07
Integrando Adobe Flex + BlazeDS + SpringFramework + Hibernate - Uma Solução OpenSource para S... http://blog.digows.com/integrando-adobe-flex-blazeds-springframework-hibernate-uma-soluo-opensou...

Rodrigo Pereira Fraga


3 de abril de 2008

Você chegou a testar?

Aqui no projeto apresentado, a ID quando nula sempre vai zero, e a configuração


default do hibernate para chaves-primárias onde a ID é do tipo int ou derivado,
quando o valor é 0, o hibernate trata como um novo registro.

Abraços

Daniel
8 de abril de 2008

Olá Rodrigo..

Tenho uma dúvida, mas que ainda não consegui resolver (falta de tempo). O
BlazeDS, como vc colocou, pode fazer um data-push. Isso inclui a parte de
DataManagement ou só a parte de mensageria?

Obrigado!

Rodrigo Pereira Fraga


8 de abril de 2008

Olá Daniel,
O BlazeDS é composto apenas pela mensageria, mas o que realmente você quer do
modulo Datamanagement?

Fique de olho, já existe algumas soluções que servem como add-on ao BlazeDS.
LazyLoad mesmo eu já conheço 2 projetos.

Abraços.

32 de 39 1/1/2009 12:07
Integrando Adobe Flex + BlazeDS + SpringFramework + Hibernate - Uma Solução OpenSource para S... http://blog.digows.com/integrando-adobe-flex-blazeds-springframework-hibernate-uma-soluo-opensou...

Daniel
10 de abril de 2008

Rodrigo,

Como DataManagement eu quero dizer o DataService. Eu vi que RPC e


MessageService o BlazeDS tem, então fiquei com dúvida no DataService. Vc poderia
me dizer algum add-on que supra essa necessidade?

Muito Obrigado!

Adriano
12 de abril de 2008

Olá Rodrigo, antes de tudo PARABÉNS!!


Excelente artigo para nós iniciantes termos uma referência!!

Quando faço Run on Server me dá o seguinte erro:


type Status report
message /JavaFlex/
description The requested resource (/JavaFlex/) is not available.

Alguém me ajuda?

Rodrigo Pereira Fraga


13 de abril de 2008

Olá Adriano,

Muito obrigado pelo feed-back,

Quanto ao seu erro, este é muito evasivo.

Para ter mais detalhes, por favor verifique seu stacktrace no console do tomcat.

Dúvidas posteriores, use o Forum: http://forum.flexbrasil.com.br/


Para tirar mais dúvidas, a comunidade poderá te ajudar.

Abraços.
\o

33 de 39 1/1/2009 12:07
Integrando Adobe Flex + BlazeDS + SpringFramework + Hibernate - Uma Solução OpenSource para S... http://blog.digows.com/integrando-adobe-flex-blazeds-springframework-hibernate-uma-soluo-opensou...

David
17 de abril de 2008

Oii Rodrigo!
Agradeço muito voce pelos posts desta integraçao! (Parte 1 y 2) Estão sendo de
grande valor pra mim, andei muito pra facer rolar esta integraçao, y con sua ajuda
estou conseguindo. Amanha vou pela parte 2.
Muchas gracias!!!
Un grande abrazo desde paraguay!

Rodrigo Pereira Fraga


17 de abril de 2008

Olá David,

Fico muito feliz em saber que estou ajudando pessoas outros paises.

Paraguay?, eu moro em Foz do Iguaçu, fronteira com Ciudad del leste. =)

Bons estudos amigo.

Bruno Queiroz Mendes


28 de abril de 2008

Olá Rodrigo, já postei aqui algum tempo atrás…e queria saber de você sobre o Lazy
Loading que acontece quando preciso de obter um pojo que possui uma Collection.
Já sei que o flex sempre carrega todo pojo e porisso acontece o erro, e sei isso é
resolvivel com o OpenSessionInView do Spring. Tem como mostrar isso pra gente?
faz um upgrade ae neste tutorial..abraço

Rodrigo Pereira Fraga


2 de maio de 2008

Respondido:

http://groups.google.com.br/group/flexdev/t/d7e240011dddabb4

\o

34 de 39 1/1/2009 12:07
Integrando Adobe Flex + BlazeDS + SpringFramework + Hibernate - Uma Solução OpenSource para S... http://blog.digows.com/integrando-adobe-flex-blazeds-springframework-hibernate-uma-soluo-opensou...

Christian
8 de maio de 2008

Parabéns, Rodrigo!!!!
Artigo muito bem escrito!!!!

Dica: Como eu tinha projeto separados (Java e Flex) ao inves de usar a diretiva de
compilação (-services), no remoteObject usei o endpoint.:

Lindberg
27 de maio de 2008

Rodrigo fiz tudo como vc falow, mas quando vou executar aparece a seguinte msg
-> INFO: Servlet MessageBrokerServlet is currently unavailable

Gostaria que me ajudasse, pois to precisando muito aprender como fazer a


integração do Flex com o Java e nao consegui ainda. Se possível se alguem souber
onde tem uma video aula por favor manda ai! Agradeço!

marcio
10 de outubro de 2008

Ola, pessoal eu fiz e refiz o projeto e sempre estou tendo os mesmo erro.

Alguém que conseguir rodar poderia entrar em contato ?

Ou eu poderia colar o log do tom cat aqui ?

Obrigado.

35 de 39 1/1/2009 12:07
Integrando Adobe Flex + BlazeDS + SpringFramework + Hibernate - Uma Solução OpenSource para S... http://blog.digows.com/integrando-adobe-flex-blazeds-springframework-hibernate-uma-soluo-opensou...

Tiago Luis
22 de outubro de 2008

Ola se alguem teve este mesmo problema, e puder mandar email


tiago_vtg@yahoo.com.br

O Araujo, fala la em cima de uma msg de erro do flex, Channel.Connect.Failed error


NetConnection.Call.Failed.

Dai o Rodrigo manda fazer um teste, e deu aqui justamente o erro 404 no http.

Dai aqui uma msg de erro do tomcat, se alguem puder ajudar…

WARNING: [SetPropertiesRule]{Server/Service/Engine/Host/Context} Setting


property ’source’ to ‘org.eclipse.jst.j2ee.server:MeuSistema’ did not find a matching
property.

Obrigado!

Leonardo França » Adobe Flex e Java


5 de novembro de 2008

[...] Integrando Adobe Flex + BlazeDS + SpringFramework + Hibernate - Uma


Solução OpenSource para Sistem… [...]

Júlio
18 de novembro de 2008

Olá,

Estou tentando fazer esse exemplo, porem o erro “Cannot create HTML wrapper.
Right-click here to recreate folder html-template.” clico com o botão direito, e não
encontro o Recreate HTML Templates.

Ja refiz umas 3 vezes o exemplo todo e nada!

Se puder me ajudar!

Obrigado

36 de 39 1/1/2009 12:07
Integrando Adobe Flex + BlazeDS + SpringFramework + Hibernate - Uma Solução OpenSource para S... http://blog.digows.com/integrando-adobe-flex-blazeds-springframework-hibernate-uma-soluo-opensou...

Emanoel
23 de novembro de 2008

Olá a todos,

Estou com o mesmo problema do Júlio… não encontro a opção de ‘Recreat


HTML Templates’. Poderia me ajudar?

T+.

Keynes
11 de dezembro de 2008

Digows,
Parabens… Seu artigo ficou ótimo. Seguindo o tutorial consegui fazer a
interação que a dias vinha tentando… Continue assim.

patricia
12 de dezembro de 2008

Uma dúvia…Sou iniciante com o flex…esta associação entre Classe Java e Classe
Action Script é sempre necessária para se acessar os dados da Classe Java, não
existe ou forma?????

Comments RSS TrackBack Identifier URI

Deixe um comentário

37 de 39 1/1/2009 12:07
Integrando Adobe Flex + BlazeDS + SpringFramework + Hibernate - Uma Solução OpenSource para S... http://blog.digows.com/integrando-adobe-flex-blazeds-springframework-hibernate-uma-soluo-opensou...

Name (obrigatório)

Mail (will not be published) (obrigatório)

Website

38 de 39 1/1/2009 12:07
Integrando Adobe Flex + BlazeDS + SpringFramework + Hibernate - Uma Solução OpenSource para S... http://blog.digows.com/integrando-adobe-flex-blazeds-springframework-hibernate-uma-soluo-opensou...

Recent Posts Recent Comments


Visual Studio Team System
Treinamento, implantação e coaching
Porquê Flex? / Why Flex? Baseado no howosteofevek: hello it is test. WinRAR
Técnicos certificados MVP MCT MCTS
post do Ebertom, resolvi postar uma série de provides the full RAR and ZIP file ...
www.fabiocamara.com.br
videos engraçados e interessantes sobre...
Porquê Flex? AIR? Why Flex ... patricia: Uma dúvia...Sou iniciante com o
flex...esta associação entre... Sistemas & Serviços RFID
Tags RFID UHF Passivas Gen 2 Tags RFID,
Manifesto Flex brasil [Saiba o que é o
Leitores & Impressoras.
Manifesto Flex Brasil] Minhas principais Keynes: Digows, Parabens... Seu artigo ficou www.intermec.com.br
contribuições para a comunidade: Post: ótimo. Seguindo o tut...
Configurando Ambiente com Flex 2 e
HelloWorld. Por que ele é relevante: Aprenda Java Installer Builder
vavamaster: Olá, ficou muito bom mesmo,
a... Easy to use, amazingly powerful Creates
meus parabéns, só estou com um p...
beautiful installers
www.ej-technologies.com
Integrando Adobe Flex + BlazeDS + ezzeddine: hello, if i have a class java with a
SpringFramework + Hibernate - Uma composite key, how his...
Solução OpenSource para Sistemas Web.
(Parte 2 - Final) Olá Pessoal! Primeiro lugar, Junior: Alguem tem o source.zip deste
quero agradecer a todos pelo feedback do exemplo???...
post anterior, isto é motivante e me dá ânimo
em concluir este, e outros que virão. Hoje o
foco...

Powered By: Rodrigo P. Fraga - The Theme design by Web Themes.

39 de 39 1/1/2009 12:07