<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Stefan Horochovec &#187; Java</title>
	<atom:link href="http://www.horochovec.com.br/blog/tag/java/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.horochovec.com.br/blog</link>
	<description>Blog sobre plataforma Flash - Flex e AIR - e sua integração com Java</description>
	<lastBuildDate>Mon, 12 Jul 2010 02:01:05 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
		<item>
		<title>Flex 4 + BlazeDS 4 + Java + DataWizards</title>
		<link>http://www.horochovec.com.br/blog/2010/03/24/flex-4-blazeds-4-java-datawizards/</link>
		<comments>http://www.horochovec.com.br/blog/2010/03/24/flex-4-blazeds-4-java-datawizards/#comments</comments>
		<pubDate>Thu, 25 Mar 2010 02:55:54 +0000</pubDate>
		<dc:creator>Stefan Horochovec</dc:creator>
				<category><![CDATA[BlazeDS]]></category>
		<category><![CDATA[Flex 4]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[DataWizards]]></category>
		<category><![CDATA[Flash Builder]]></category>

		<guid isPermaLink="false">http://www.horochovec.com.br/blog/?p=340</guid>
		<description><![CDATA[Olá pessoal A grande sensação ontem (23/03) foi a publicação pelo guru Christophe Coenraets demonstrando um vídeo aonde através do Flash Builder ele consumiu recursos de um projeto Java sem codificação no ambiente Flex. Nesse artigo vou demonstrar como trabalhar com esse recurso passo-a-passo. Bom, primeiro passo é você ter em seu computador todas as [...]]]></description>
			<content:encoded><![CDATA[<p>Olá pessoal</p>
<p>A grande sensação ontem (23/03) foi a publicação pelo guru <a href="http://coenraets.org/blog/2010/03/video-using-the-flash-builder-4-data-wizards-with-blazeds-4/" target="_new">Christophe Coenraets</a> demonstrando um vídeo aonde através do Flash Builder ele consumiu recursos de um projeto Java sem codificação no ambiente Flex. Nesse artigo vou demonstrar como trabalhar com esse recurso passo-a-passo.</p>
<p><span id="more-340"></span></p>
<p>Bom, primeiro passo é você ter em seu computador todas as ferramentas necessárias. Neste caso, você irá utilizar o <a href="http://www.eclipse.org/downloads/download.php?file=/technology/epp/downloads/release/galileo/SR2/eclipse-jee-galileo-SR2-win32.zip" target="_new">Eclipse Galileu JEE</a>, <a href="http://www.adobe.com/products/flashbuilder/" target="_new">Flash Builder (stand-alone ou plugin)</a> e do <a href="http://flexorg.wip3.adobe.com/blazeds/trunk/14910/blazeds-bin-4.0.0.14910.zip" target="_new">BlazeDS 4 Beta</a>.</p>
<p>A aplicação que desenvolveremos nesse tutorial é a mesma desenvolvida no post anterior, com a diferença que aonde foi feito codificação manual no ambiente Flex, agora, iremos utilizar o Flash Builder para a geração do código fonte.</p>
<p>Bom, no Eclipse Galileo para iniciar um projeto, eu escolhi a opção <em>File -&gt; New -&gt; Web -&gt; Dynamic Web Project</em>, conforme abaixo:</p>
<p style="text-align: center;"><a href="http://www.horochovec.com.br/blog/wp-content/uploads/2010/03/31.jpg"><img class="size-full wp-image-283  aligncenter" src="http://www.horochovec.com.br/blog/wp-content/uploads/2010/03/31.jpg" alt="" width="543" height="526" /></a></p>
<p>E depois configurei o projeto da seguinte maneira:</p>
<p style="text-align: center;"><a href="http://www.horochovec.com.br/blog/wp-content/uploads/2010/03/4.jpg"><img class="size-full wp-image-284  aligncenter" src="http://www.horochovec.com.br/blog/wp-content/uploads/2010/03/4.jpg" alt="" width="541" height="720" /></a></p>
<p style="text-align: center;"><a href="http://www.horochovec.com.br/blog/wp-content/uploads/2010/03/5.jpg"><img class="size-full wp-image-285  aligncenter" src="http://www.horochovec.com.br/blog/wp-content/uploads/2010/03/5.jpg" alt="" width="565" height="410" /></a></p>
<p style="text-align: center;"><a href="http://www.horochovec.com.br/blog/wp-content/uploads/2010/03/61.jpg"><img class="size-full wp-image-287  aligncenter" src="http://www.horochovec.com.br/blog/wp-content/uploads/2010/03/61.jpg" alt="" width="565" height="410" /></a></p>
<p>Bom, depois de configurar o projeto, iremos criar um Bean para serializarmos algumas informações que serão enviadas para o Flex. A idéia é bastante simples, irei criar um model para uma simples agenda de contato.</p>

<div class="wp_codebox_msgheader"><span class="right"><sup><a href="http://www.ericbess.com/ericblog/2008/03/03/wp-codebox/#examples" target="_blank" title="WP-CodeBox HowTo?"><span style="color: #99cc00">?</span></a></sup></span><span class="left2">Download <a href="http://www.horochovec.com.br/blog/wp-content/plugins/wp-codebox/wp-codebox.php?p=340&amp;download=Contato.java">Contato.java</a></span><div class="codebox_clear"></div></div><div class="wp_codebox"><table><tr id="p34010"><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
</pre></td><td class="code" id="p340code10"><pre class="java" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">package</span> <span style="color: #006699;">br.com.horochovec.model</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">java.io.Serializable</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #008000; font-style: italic; font-weight: bold;">/**
 * Modelo para agenda de contato
 * @author Stefan Horochovec 
 */</span>
<span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000000; font-weight: bold;">class</span> Contato <span style="color: #000000; font-weight: bold;">implements</span> <a href="http://www.google.com/search?hl=en&amp;q=allinurl%3Aserializable+java.sun.com&amp;btnI=I%27m%20Feeling%20Lucky"><span style="color: #003399;">Serializable</span></a> <span style="color: #009900;">&#123;</span>
&nbsp;
	<span style="color: #008000; font-style: italic; font-weight: bold;">/**
	 *
	 */</span>
	<span style="color: #000000; font-weight: bold;">private</span> <span style="color: #000000; font-weight: bold;">static</span> <span style="color: #000000; font-weight: bold;">final</span> <span style="color: #000066; font-weight: bold;">long</span> serialVersionUID <span style="color: #339933;">=</span> 1L<span style="color: #339933;">;</span>
&nbsp;
	<span style="color: #000000; font-weight: bold;">private</span> <a href="http://www.google.com/search?hl=en&amp;q=allinurl%3Astring+java.sun.com&amp;btnI=I%27m%20Feeling%20Lucky"><span style="color: #003399;">String</span></a> nome<span style="color: #339933;">;</span>
&nbsp;
	<span style="color: #000000; font-weight: bold;">private</span> <a href="http://www.google.com/search?hl=en&amp;q=allinurl%3Astring+java.sun.com&amp;btnI=I%27m%20Feeling%20Lucky"><span style="color: #003399;">String</span></a> email<span style="color: #339933;">;</span>
&nbsp;
	<span style="color: #000000; font-weight: bold;">public</span> <a href="http://www.google.com/search?hl=en&amp;q=allinurl%3Astring+java.sun.com&amp;btnI=I%27m%20Feeling%20Lucky"><span style="color: #003399;">String</span></a> getNome<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
		<span style="color: #000000; font-weight: bold;">return</span> nome<span style="color: #339933;">;</span>
	<span style="color: #009900;">&#125;</span>
&nbsp;
	<span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000066; font-weight: bold;">void</span> setNome<span style="color: #009900;">&#40;</span><a href="http://www.google.com/search?hl=en&amp;q=allinurl%3Astring+java.sun.com&amp;btnI=I%27m%20Feeling%20Lucky"><span style="color: #003399;">String</span></a> nome<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
		<span style="color: #000000; font-weight: bold;">this</span>.<span style="color: #006633;">nome</span> <span style="color: #339933;">=</span> nome<span style="color: #339933;">;</span>
	<span style="color: #009900;">&#125;</span>
&nbsp;
	<span style="color: #000000; font-weight: bold;">public</span> <a href="http://www.google.com/search?hl=en&amp;q=allinurl%3Astring+java.sun.com&amp;btnI=I%27m%20Feeling%20Lucky"><span style="color: #003399;">String</span></a> getEmail<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
		<span style="color: #000000; font-weight: bold;">return</span> email<span style="color: #339933;">;</span>
	<span style="color: #009900;">&#125;</span>
&nbsp;
	<span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000066; font-weight: bold;">void</span> setEmail<span style="color: #009900;">&#40;</span><a href="http://www.google.com/search?hl=en&amp;q=allinurl%3Astring+java.sun.com&amp;btnI=I%27m%20Feeling%20Lucky"><span style="color: #003399;">String</span></a> email<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
		<span style="color: #000000; font-weight: bold;">this</span>.<span style="color: #006633;">email</span> <span style="color: #339933;">=</span> email<span style="color: #339933;">;</span>
	<span style="color: #009900;">&#125;</span>
&nbsp;
<span style="color: #009900;">&#125;</span></pre></td></tr></table></div>

<p>E em seguida, criarei um serviço que irá adicionar em um ArrayList os contatos que serão enviados do Flex para o Java.</p>

<div class="wp_codebox_msgheader"><span class="right"><sup><a href="http://www.ericbess.com/ericblog/2008/03/03/wp-codebox/#examples" target="_blank" title="WP-CodeBox HowTo?"><span style="color: #99cc00">?</span></a></sup></span><span class="left2">Download <a href="http://www.horochovec.com.br/blog/wp-content/plugins/wp-codebox/wp-codebox.php?p=340&amp;download=ContatoService.java">ContatoService.java</a></span><div class="codebox_clear"></div></div><div class="wp_codebox"><table><tr id="p34011"><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
</pre></td><td class="code" id="p340code11"><pre class="java" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">package</span> <span style="color: #006699;">br.com.horochovec.service</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">java.util.ArrayList</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">br.com.horochovec.model.Contato</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #008000; font-style: italic; font-weight: bold;">/**
 * Serviço para manutenção dos contatos
 * @author Stefan Horochovec 
 */</span>
<span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000000; font-weight: bold;">class</span> ContatoService <span style="color: #009900;">&#123;</span>
&nbsp;
	<span style="color: #000000; font-weight: bold;">private</span> <span style="color: #000000; font-weight: bold;">static</span> <a href="http://www.google.com/search?hl=en&amp;q=allinurl%3Aarraylist+java.sun.com&amp;btnI=I%27m%20Feeling%20Lucky"><span style="color: #003399;">ArrayList</span></a> listContato <span style="color: #339933;">=</span> <span style="color: #000000; font-weight: bold;">new</span> <a href="http://www.google.com/search?hl=en&amp;q=allinurl%3Aarraylist+java.sun.com&amp;btnI=I%27m%20Feeling%20Lucky"><span style="color: #003399;">ArrayList</span></a><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> 
&nbsp;
	<span style="color: #008000; font-style: italic; font-weight: bold;">/**
	 * Adiciona um contato a lista
	 * @param contato
	 */</span>
	<span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000066; font-weight: bold;">void</span> addContato<span style="color: #009900;">&#40;</span>Contato contato<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
		listContato.<span style="color: #006633;">add</span><span style="color: #009900;">&#40;</span>contato<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #009900;">&#125;</span>
&nbsp;
	<span style="color: #008000; font-style: italic; font-weight: bold;">/**
	 * Retorna a lista de contatos
	 * @return
	 */</span>
	<span style="color: #000000; font-weight: bold;">public</span> <a href="http://www.google.com/search?hl=en&amp;q=allinurl%3Aarraylist+java.sun.com&amp;btnI=I%27m%20Feeling%20Lucky"><span style="color: #003399;">ArrayList</span></a> getListContato<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
		<span style="color: #000000; font-weight: bold;">return</span> listContato<span style="color: #339933;">;</span>
	<span style="color: #009900;">&#125;</span>
&nbsp;
<span style="color: #009900;">&#125;</span></pre></td></tr></table></div>

<p>Após isso, já temos uma simples aplicação pronta para trabalhar com o Flex, basta apenas configurar os arquivos .XML para que o BlazeDS possa funcionar.</p>
<p>A partir de agora é necessário que você já tenha descompactado o arquivo blazeds-bin-4.0.0.14910.zip. Após descompactá-lo, você terá que descompactar o arquivo blazeds.war que surgiu da descompactação anterior. Como resultado, obterá o seguinte:</p>
<p><a href="http://www.horochovec.com.br/blog/wp-content/uploads/2010/03/19.jpg"><img src="http://www.horochovec.com.br/blog/wp-content/uploads/2010/03/19.jpg" alt="" title="19" width="540" height="204" class="aligncenter size-full wp-image-348" /></a></p>
<p><a href="http://www.horochovec.com.br/blog/wp-content/uploads/2010/03/20.jpg"><img src="http://www.horochovec.com.br/blog/wp-content/uploads/2010/03/20.jpg" alt="" title="20" width="546" height="285" class="aligncenter size-full wp-image-349" /></a></p>
<p>Bom, podemos copiar para o diretório <em>WebContent/WEB-INF</em> de nosso projeto Java, os diretórios: <em>flex/</em>, <em>lib/</em>, <em>spring/</em> e os arquivos: <em>flex-servlet.xml</em> e <em>web.xml</em>. Após copiar esse conteúdo, o primeiro arquivo que iremos configurar, é o arquivo web.xml que fica dentro da pasta <em>WebContent/WEB-INF/</em>. </p>
<p>Para essa configuração, iremos alterar o conteúdo do arquivo web.xml que veio dentro do arquivo blazeds.war que foi previamente descompactado. </p>
<p>Perceba que os parametros da aplicação foram alterados e também foi alterado o valor da propriedade <em>useAppserverSecurity </em>para <em>false</em>. O resultado será:</p>

<div class="wp_codebox_msgheader"><span class="right"><sup><a href="http://www.ericbess.com/ericblog/2008/03/03/wp-codebox/#examples" target="_blank" title="WP-CodeBox HowTo?"><span style="color: #99cc00">?</span></a></sup></span><span class="left2">Download <a href="http://www.horochovec.com.br/blog/wp-content/plugins/wp-codebox/wp-codebox.php?p=340&amp;download=web.xml">web.xml</a></span><div class="codebox_clear"></div></div><div class="wp_codebox"><table><tr id="p34012"><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
</pre></td><td class="code" id="p340code12"><pre class="xml" style="font-family:monospace;"><span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;?xml</span> <span style="color: #000066;">version</span>=<span style="color: #ff0000;">&quot;1.0&quot;</span> <span style="color: #000066;">encoding</span>=<span style="color: #ff0000;">&quot;UTF-8&quot;</span><span style="color: #000000; font-weight: bold;">?&gt;</span></span>
<span style="color: #00bbdd;">&lt;!DOCTYPE web-app PUBLIC &quot;-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN&quot; &quot;http://java.sun.com/dtd/web-app_2_3.dtd&quot;&gt;</span>
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;web-app<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
&nbsp;
    <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;display-name<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>FlexDuck<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/display-name<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
    <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;description<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>FlexDuck<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/description<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
&nbsp;
    <span style="color: #808080; font-style: italic;">&lt;!-- Http Flex Session attribute and binding listener support --&gt;</span>
    <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;listener<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
        <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;listener-class<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>flex.messaging.HttpFlexSession<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/listener-class<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
    <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/listener<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
&nbsp;
    <span style="color: #808080; font-style: italic;">&lt;!-- MessageBroker Servlet --&gt;</span>
    <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;servlet<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
        <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;servlet-name<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>MessageBrokerServlet<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/servlet-name<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
        <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;display-name<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>MessageBrokerServlet<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/display-name<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
        <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;servlet-class<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>flex.messaging.MessageBrokerServlet<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/servlet-class<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
        <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;init-param<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
            <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;param-name<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>services.configuration.file<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/param-name<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
            <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;param-value<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>/WEB-INF/flex/services-config.xml<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/param-value<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
       <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/init-param<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
        <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;load-on-startup<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>1<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/load-on-startup<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
    <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/servlet<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
&nbsp;
    <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;servlet<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
        <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;servlet-name<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>RDSDispatchServlet<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/servlet-name<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
		<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;display-name<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>RDSDispatchServlet<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/display-name<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
        <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;servlet-class<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>flex.rds.server.servlet.FrontEndServlet<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/servlet-class<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
		<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;init-param<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
			<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;param-name<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>useAppserverSecurity<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/param-name<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
			<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;param-value<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>false<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/param-value<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
		<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/init-param<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>        
        <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;load-on-startup<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>10<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/load-on-startup<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
    <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/servlet<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
&nbsp;
    <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;servlet-mapping</span> <span style="color: #000066;">id</span>=<span style="color: #ff0000;">&quot;RDS_DISPATCH_MAPPING&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span>
        <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;servlet-name<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>RDSDispatchServlet<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/servlet-name<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
        <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;url-pattern<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>/CFIDE/main/ide.cfm<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/url-pattern<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
    <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/servlet-mapping<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
&nbsp;
    <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;servlet-mapping<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
        <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;servlet-name<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>MessageBrokerServlet<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/servlet-name<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
        <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;url-pattern<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>/messagebroker/*<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/url-pattern<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
    <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/servlet-mapping<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
&nbsp;
    <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;welcome-file-list<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
        <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;welcome-file<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>index.html<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/welcome-file<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
        <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;welcome-file<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>index.htm<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/welcome-file<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
    <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/welcome-file-list<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
&nbsp;
    <span style="color: #808080; font-style: italic;">&lt;!-- for WebSphere deployment, please uncomment --&gt;</span>
    <span style="color: #808080; font-style: italic;">&lt;!--</span>
<span style="color: #808080; font-style: italic;">    &lt;resource-ref&gt;</span>
<span style="color: #808080; font-style: italic;">        &lt;description&gt;Flex Messaging WorkManager&lt;/description&gt;</span>
<span style="color: #808080; font-style: italic;">        &lt;res-ref-name&gt;wm/MessagingWorkManager&lt;/res-ref-name&gt;</span>
<span style="color: #808080; font-style: italic;">        &lt;res-type&gt;com.ibm.websphere.asynchbeans.WorkManager&lt;/res-type&gt;</span>
<span style="color: #808080; font-style: italic;">        &lt;res-auth&gt;Container&lt;/res-auth&gt;</span>
<span style="color: #808080; font-style: italic;">        &lt;res-sharing-scope&gt;Shareable&lt;/res-sharing-scope&gt;</span>
<span style="color: #808080; font-style: italic;">    &lt;/resource-ref&gt;</span>
<span style="color: #808080; font-style: italic;">    --&gt;</span>
&nbsp;
<span style="color: #808080; font-style: italic;">&lt;!--</span>
<span style="color: #808080; font-style: italic;">	&lt;context-param&gt;</span>
<span style="color: #808080; font-style: italic;">		&lt;param-name&gt;contextConfigLocation&lt;/param-name&gt;</span>
<span style="color: #808080; font-style: italic;">		&lt;param-value&gt;</span>
<span style="color: #808080; font-style: italic;">			/WEB-INF/spring/*-config.xml</span>
<span style="color: #808080; font-style: italic;">		&lt;/param-value&gt;</span>
<span style="color: #808080; font-style: italic;">	&lt;/context-param&gt;</span>
&nbsp;
<span style="color: #808080; font-style: italic;">    &lt;filter&gt;</span>
<span style="color: #808080; font-style: italic;">        &lt;filter-name&gt;springSecurityFilterChain&lt;/filter-name&gt;</span>
<span style="color: #808080; font-style: italic;">        &lt;filter-class&gt;org.springframework.web.filter.DelegatingFilterProxy&lt;/filter-class&gt;</span>
<span style="color: #808080; font-style: italic;">    &lt;/filter&gt;</span>
&nbsp;
<span style="color: #808080; font-style: italic;">    &lt;filter-mapping&gt;</span>
<span style="color: #808080; font-style: italic;">      &lt;filter-name&gt;springSecurityFilterChain&lt;/filter-name&gt;</span>
<span style="color: #808080; font-style: italic;">      &lt;url-pattern&gt;/*&lt;/url-pattern&gt;</span>
<span style="color: #808080; font-style: italic;">    &lt;/filter-mapping&gt;</span>
&nbsp;
<span style="color: #808080; font-style: italic;">	&lt;listener&gt;</span>
<span style="color: #808080; font-style: italic;">		&lt;listener-class&gt;org.springframework.web.context.ContextLoaderListener&lt;/listener-class&gt;</span>
<span style="color: #808080; font-style: italic;">	&lt;/listener&gt;</span>
&nbsp;
<span style="color: #808080; font-style: italic;">	&lt;servlet&gt;</span>
<span style="color: #808080; font-style: italic;">		&lt;servlet-name&gt;flex&lt;/servlet-name&gt;</span>
<span style="color: #808080; font-style: italic;">		&lt;servlet-class&gt;org.springframework.web.servlet.DispatcherServlet&lt;/servlet-class&gt;</span>
<span style="color: #808080; font-style: italic;">		&lt;load-on-startup&gt;1&lt;/load-on-startup&gt;</span>
<span style="color: #808080; font-style: italic;">	&lt;/servlet&gt;</span>
&nbsp;
<span style="color: #808080; font-style: italic;">	&lt;servlet-mapping&gt;</span>
<span style="color: #808080; font-style: italic;">    	&lt;servlet-name&gt;flex&lt;/servlet-name&gt;</span>
<span style="color: #808080; font-style: italic;">    	&lt;url-pattern&gt;/messagebroker/*&lt;/url-pattern&gt;</span>
<span style="color: #808080; font-style: italic;"> 	&lt;/servlet-mapping&gt;</span>
&nbsp;
<span style="color: #808080; font-style: italic;">--&gt;</span>
&nbsp;
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/web-app<span style="color: #000000; font-weight: bold;">&gt;</span></span></span></pre></td></tr></table></div>

<p>Feito isso, iremos adicionar dentro da pasta <em>WebContent</em> a pasta <em>flex</em> que foi previamente descompactada do arquivo <em>blazeds.war</em>, e também todo o conteúdo da pasta lib para dentro do diretório <em>WebContent/WEB-INF/lib</em> , obtendo o seguinte resultado:</p>
<p><a href="http://www.horochovec.com.br/blog/wp-content/uploads/2010/03/21.jpg"><img src="http://www.horochovec.com.br/blog/wp-content/uploads/2010/03/21.jpg" alt="" title="21" width="401" height="412" class="aligncenter size-full wp-image-352" /></a></p>
<p>Feito isso, iremos configurar o único arquivo .xml do BlazeDS para que esse exemplo funcione. O arquivo WEB-INF/flex/remoting-config.xml. Iremos adicionar uma configuração para informar ao BlazeDS sobre o serviço ContatoService que foi criado anteriormente, conforme abaixo:</p>

<div class="wp_codebox_msgheader"><span class="right"><sup><a href="http://www.ericbess.com/ericblog/2008/03/03/wp-codebox/#examples" target="_blank" title="WP-CodeBox HowTo?"><span style="color: #99cc00">?</span></a></sup></span><span class="left2">Download <a href="http://www.horochovec.com.br/blog/wp-content/plugins/wp-codebox/wp-codebox.php?p=340&amp;download=remoting-config.xml">remoting-config.xml</a></span><div class="codebox_clear"></div></div><div class="wp_codebox"><table><tr id="p34013"><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
</pre></td><td class="code" id="p340code13"><pre class="xml" style="font-family:monospace;"><span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;?xml</span> <span style="color: #000066;">version</span>=<span style="color: #ff0000;">&quot;1.0&quot;</span> <span style="color: #000066;">encoding</span>=<span style="color: #ff0000;">&quot;UTF-8&quot;</span><span style="color: #000000; font-weight: bold;">?&gt;</span></span>
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;service</span> <span style="color: #000066;">id</span>=<span style="color: #ff0000;">&quot;remoting-service&quot;</span> </span>
<span style="color: #009900;">    <span style="color: #000066;">class</span>=<span style="color: #ff0000;">&quot;flex.messaging.services.RemotingService&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span>
&nbsp;
    <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;adapters<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
        <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;adapter-definition</span> <span style="color: #000066;">id</span>=<span style="color: #ff0000;">&quot;java-object&quot;</span> <span style="color: #000066;">class</span>=<span style="color: #ff0000;">&quot;flex.messaging.services.remoting.adapters.JavaAdapter&quot;</span> <span style="color: #000066;">default</span>=<span style="color: #ff0000;">&quot;true&quot;</span><span style="color: #000000; font-weight: bold;">/&gt;</span></span>
    <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/adapters<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
&nbsp;
    <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;default-channels<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
        <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;channel</span> <span style="color: #000066;">ref</span>=<span style="color: #ff0000;">&quot;my-amf&quot;</span><span style="color: #000000; font-weight: bold;">/&gt;</span></span>
    <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/default-channels<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
&nbsp;
    <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;destination</span> <span style="color: #000066;">id</span>=<span style="color: #ff0000;">&quot;ContatoService&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span>
    	<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;properties<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
    		<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;source<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>br.com.horochovec.service.ContatoService<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/source<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
    	<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/properties<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
    <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/destination<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/service<span style="color: #000000; font-weight: bold;">&gt;</span></span></span></pre></td></tr></table></div>

<p>Após essa última configuração, podemos exportar o nosso projeto para um servidor web. Nesse caso, utilizaremos o <a href="http://tomcat.apache.org/" target="_new">Tomcat 6.x</a>. Neste artigo não entrarei em detalhes de sua instalação e configuração.</p>
<p>Bom, as configurações no projeto Java já foram finalizadas, e considerando que o deploy da aplicação dentro do Tomcat já foi realizado, a partir deste momento iremos trabalhar diretamente com o Flash Builder. </p>
<p>Neste artigo irei demonstrar a comunicação utilizando o Flash Builder e a versão do Flex 4. Você pode fazer o download da versão 4.0 do Flash Builder e do Flex 4 SDK <a href="http://www.adobe.com/products/flashbuilder/" target="_new">aqui</a>.</p>
<p>Após instalado e iniciado o Flash Builder, iremos criar um projeto no seguinte molde:</p>
<p><a href="http://www.horochovec.com.br/blog/wp-content/uploads/2010/03/11.jpg"><img src="http://www.horochovec.com.br/blog/wp-content/uploads/2010/03/11.jpg" alt="" title="" width="450" height="459" class="aligncenter size-full wp-image-308" /></a></p>
<p><a href="http://www.horochovec.com.br/blog/wp-content/uploads/2010/03/12.jpg"><img src="http://www.horochovec.com.br/blog/wp-content/uploads/2010/03/12.jpg" alt="" title="" width="450" height="325" class="aligncenter size-full wp-image-309" /></a></p>
<p>As configurações feitas na segunda tela de configuração são bastante importantes. Fazendo elas da forma correta, você estará apto a iniciar o projeto sem fazer novas configurações. </p>
<p>Na primeira linha, em <strong>Root Folder</strong>, foi apontado o diretório de deploy da minha aplicação dentro do meu servidor de aplicação.</p>
<p>Na segunda linha, em <strong>Root URL</strong>, foi apontado o caminho da URL para abertura da aplicação em meu navegador de internet.</p>
<p>Na terceira linha, em <strong>ContextRoot</strong>, apontamos o nome da nossa aplicação.</p>
<p>Na quarta e ultima linha, em <strong>Output folder</strong>, apontamos o diretório de onde deve ser exportados os arquivos quando compilados. Para esse tutorial, foi apontado diretamente o diretório de minha aplicação dentro do meu servidor Tomcat.</p>
<p>Como resultado, o Flash Builder irá criar e disponibilizar no workspace um projeto da seguinte forma:</p>
<p><a href="http://www.horochovec.com.br/blog/wp-content/uploads/2010/03/13.jpg"><img src="http://www.horochovec.com.br/blog/wp-content/uploads/2010/03/13.jpg" alt="" title="" width="495" height="305" class="aligncenter size-full wp-image-312" /></a></p>
<p>É muito importante fazer a conferência de uma configuração gerada automaticamente pelo Flash Builder em cima dos parametros informados na segunda etapa da criação do projeto. No menu &#8216;Project&#8217; vá na opção &#8216;Properties&#8217; e confira as propriedades de acordo com a imagem abaixo:</p>
<p><a href="http://www.horochovec.com.br/blog/wp-content/uploads/2010/03/14.jpg"><img src="http://www.horochovec.com.br/blog/wp-content/uploads/2010/03/14.jpg" alt="" title="14" width="540" height="433" class="aligncenter size-full wp-image-314" /></a></p>
<p>Iremos criar uma tela no Flash Builder que contenha dois campos text input para preencher as informações do nome e email do contato, e também um grid para conter a lista dos contatos que serão adicionados no Java e retornarão ao Flex através do BlazeDS.</p>
<p><a href="http://www.horochovec.com.br/blog/wp-content/uploads/2010/03/301.jpg"><img src="http://www.horochovec.com.br/blog/wp-content/uploads/2010/03/301.jpg" alt="" title="30" width="465" height="485" class="aligncenter size-full wp-image-377" /></a></p>
<p>Segue sua implementação</p>

<div class="wp_codebox_msgheader"><span class="right"><sup><a href="http://www.ericbess.com/ericblog/2008/03/03/wp-codebox/#examples" target="_blank" title="WP-CodeBox HowTo?"><span style="color: #99cc00">?</span></a></sup></span><span class="left2">Download <a href="http://www.horochovec.com.br/blog/wp-content/plugins/wp-codebox/wp-codebox.php?p=340&amp;download=FlexDuck.mxml">FlexDuck.mxml</a></span><div class="codebox_clear"></div></div><div class="wp_codebox"><table><tr id="p34014"><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
</pre></td><td class="code" id="p340code14"><pre class="actionscript" style="font-family:monospace;"><span style="color: #66cc66;">&lt;</span>?<span style="color: #0066CC;">xml</span> <span style="color: #0066CC;">version</span>=<span style="color: #ff0000;">&quot;1.0&quot;</span> encoding=<span style="color: #ff0000;">&quot;utf-8&quot;</span>?<span style="color: #66cc66;">&gt;</span>
<span style="color: #66cc66;">&lt;</span>?<span style="color: #0066CC;">xml</span> <span style="color: #0066CC;">version</span>=<span style="color: #ff0000;">&quot;1.0&quot;</span> encoding=<span style="color: #ff0000;">&quot;utf-8&quot;</span>?<span style="color: #66cc66;">&gt;</span>
<span style="color: #66cc66;">&lt;</span>s:Application xmlns:fx=<span style="color: #ff0000;">&quot;http://ns.adobe.com/mxml/2009&quot;</span> 
			   xmlns:s=<span style="color: #ff0000;">&quot;library://ns.adobe.com/flex/spark&quot;</span> 
			   xmlns:mx=<span style="color: #ff0000;">&quot;library://ns.adobe.com/flex/mx&quot;</span> <span style="color: #0066CC;">height</span>=<span style="color: #ff0000;">&quot;419&quot;</span><span style="color: #66cc66;">&gt;</span>
&nbsp;
&nbsp;
	<span style="color: #66cc66;">&lt;</span>fx:Declarations<span style="color: #66cc66;">&gt;</span>
&nbsp;
	<span style="color: #66cc66;">&lt;/</span>fx:Declarations<span style="color: #66cc66;">&gt;</span>
&nbsp;
&nbsp;
	<span style="color: #66cc66;">&lt;</span>s:Panel <span style="color: #0066CC;">width</span>=<span style="color: #ff0000;">&quot;400&quot;</span> <span style="color: #0066CC;">height</span>=<span style="color: #ff0000;">&quot;137&quot;</span> title=<span style="color: #ff0000;">&quot;Cadastro&quot;</span> <span style="color: #0066CC;">left</span>=<span style="color: #ff0000;">&quot;10&quot;</span> top=<span style="color: #ff0000;">&quot;10&quot;</span><span style="color: #66cc66;">&gt;</span>
&nbsp;
	<span style="color: #66cc66;">&lt;/</span>s:Panel<span style="color: #66cc66;">&gt;</span>
&nbsp;
	<span style="color: #66cc66;">&lt;</span>s:Panel x=<span style="color: #ff0000;">&quot;12&quot;</span> y=<span style="color: #ff0000;">&quot;166&quot;</span> <span style="color: #0066CC;">width</span>=<span style="color: #ff0000;">&quot;400&quot;</span> <span style="color: #0066CC;">height</span>=<span style="color: #ff0000;">&quot;227&quot;</span> title=<span style="color: #ff0000;">&quot;Pesquisa&quot;</span> <span style="color: #0066CC;">left</span>=<span style="color: #ff0000;">&quot;10&quot;</span><span style="color: #66cc66;">&gt;</span>
		<span style="color: #66cc66;">&lt;</span>mx:DataGrid x=<span style="color: #ff0000;">&quot;10&quot;</span> y=<span style="color: #ff0000;">&quot;10&quot;</span> bottom=<span style="color: #ff0000;">&quot;30&quot;</span> <span style="color: #0066CC;">left</span>=<span style="color: #ff0000;">&quot;5&quot;</span> <span style="color: #0066CC;">right</span>=<span style="color: #ff0000;">&quot;5&quot;</span> top=<span style="color: #ff0000;">&quot;5&quot;</span> id=<span style="color: #ff0000;">&quot;grid&quot;</span><span style="color: #66cc66;">&gt;</span>
		<span style="color: #66cc66;">&lt;/</span>mx:DataGrid<span style="color: #66cc66;">&gt;</span>
		<span style="color: #66cc66;">&lt;</span>s:<span style="color: #0066CC;">Button</span> x=<span style="color: #ff0000;">&quot;-1&quot;</span> y=<span style="color: #ff0000;">&quot;163&quot;</span> label=<span style="color: #ff0000;">&quot;Listar todos&quot;</span> <span style="color: #0066CC;">left</span>=<span style="color: #ff0000;">&quot;5&quot;</span> bottom=<span style="color: #ff0000;">&quot;5&quot;</span> id=<span style="color: #ff0000;">&quot;button&quot;</span><span style="color: #66cc66;">/&gt;</span>
	<span style="color: #66cc66;">&lt;/</span>s:Panel<span style="color: #66cc66;">&gt;</span>
<span style="color: #66cc66;">&lt;/</span>s:Application<span style="color: #66cc66;">&gt;</span></pre></td></tr></table></div>

<p>A partir deste momento, usaremos os recursos de Data/Services presentes no Flash Builder 4 para a geração da comunicação com o Java.</p>
<p>Primeiro, iremos conectar o Flash Builder com o BlazeDS. Para isso, na aba &#8220;Data/Services&#8221; clique na opção &#8220;Connect to Data/Service&#8221;. Caso ela não esteja disponivel em seu workspace, vá ao menu &#8220;Window&#8221; e marque a opção &#8220;Data/Services&#8221;.</p>
<p><a href="http://www.horochovec.com.br/blog/wp-content/uploads/2010/03/22.jpg"><img src="http://www.horochovec.com.br/blog/wp-content/uploads/2010/03/22.jpg" alt="" title="22" width="429" height="165" class="aligncenter size-full wp-image-358" /></a></p>
<p>Feito isso, na próxima tela, marque a opção &#8220;BlazeDS&#8221;, clique em Next e marque a opção para não utilizar controle de acesso. Conforme as telas abaixo:</p>
<p><a href="http://www.horochovec.com.br/blog/wp-content/uploads/2010/03/231.jpg"><img src="http://www.horochovec.com.br/blog/wp-content/uploads/2010/03/231.jpg" alt="" title="23" width="500" height="371" class="aligncenter size-full wp-image-363" /></a></p>
<p><a href="http://www.horochovec.com.br/blog/wp-content/uploads/2010/03/24.jpg"><img src="http://www.horochovec.com.br/blog/wp-content/uploads/2010/03/24.jpg" alt="" title="24" width="549" height="275" class="aligncenter size-full wp-image-360" /></a></p>
<p>Na última tela, você deve marcar os serviços que deseja adicionar a aplicação, com opção de definição de endereços de pacotes e depois finalizar a criação do Objeto, conforme:<br />
<a href="http://www.horochovec.com.br/blog/wp-content/uploads/2010/03/25.jpg"><img src="http://www.horochovec.com.br/blog/wp-content/uploads/2010/03/25.jpg" alt="" title="25" width="532" height="457" class="aligncenter size-full wp-image-364" /></a></p>
<p>Após finalizar a configuração do serviço remoto, obtemos o seguinte resultado no Flash Builder.</p>
<p><a href="http://www.horochovec.com.br/blog/wp-content/uploads/2010/03/311.jpg"><img src="http://www.horochovec.com.br/blog/wp-content/uploads/2010/03/311.jpg" alt="" title="31" width="429" height="151" class="aligncenter size-full wp-image-373" /></a></p>
<p><a href="http://www.horochovec.com.br/blog/wp-content/uploads/2010/03/32.jpg"><img src="http://www.horochovec.com.br/blog/wp-content/uploads/2010/03/32.jpg" alt="" title="32" width="327" height="328" class="aligncenter size-full wp-image-374" /></a></p>
<p>Agora, iremos definir que no momento do click no botão logo abaixo do DataGrid, a aplicação deverá invocar o método getListContato().</p>
<p>O primeiro passo para isso, é clicar com o botão direito sobre o botão com do painel que contem o DataGrid e marcar a opção &#8220;<em>Generate Service Call</em>&#8220;. Feito isso configure a tela do serviço conforme apresentado abaixo:</p>
<p><a href="http://www.horochovec.com.br/blog/wp-content/uploads/2010/03/33.jpg"><img src="http://www.horochovec.com.br/blog/wp-content/uploads/2010/03/33.jpg" alt="" title="33" width="465" height="485" class="aligncenter size-full wp-image-379" /></a></p>
<p><a href="http://www.horochovec.com.br/blog/wp-content/uploads/2010/03/34.jpg"><img src="http://www.horochovec.com.br/blog/wp-content/uploads/2010/03/34.jpg" alt="" title="34" width="465" height="278" class="aligncenter size-full wp-image-381" /></a></p>
<p>Feito isso, selecione o DataGrid e clicando com o botão direito dentro dele, selecione a opção &#8220;<em>Bind to Data</em>&#8221; e configure a tela conforme informado abaixo:</p>
<p><a href="http://www.horochovec.com.br/blog/wp-content/uploads/2010/03/35.jpg"><img src="http://www.horochovec.com.br/blog/wp-content/uploads/2010/03/35.jpg" alt="" title="35" width="465" height="404" class="aligncenter size-full wp-image-383" /></a></p>
<p>Nesse momento, o painel responsável por listar as informações da nossa agenda de contato já está finalizado.</p>
<p>Agora, clicando novamente com o botão direito em cima do DataGrid, clique na opção &#8220;<em>Generate Details Form</em>&#8221; e configure a tela conforme abaixo:</p>
<p><a href="http://www.horochovec.com.br/blog/wp-content/uploads/2010/03/36.jpg"><img src="http://www.horochovec.com.br/blog/wp-content/uploads/2010/03/36.jpg" alt="" title="36" width="537" height="511" class="aligncenter size-full wp-image-384" /></a></p>
<p>O formulário gerado será adicionado no mesmo container que estiver o DataGrid, portanto, será necessário reposicioná-lo dentro do <em>Panel</em> já criado, conforme imagem abaixo:</p>
<p><a href="http://www.horochovec.com.br/blog/wp-content/uploads/2010/03/37.jpg"><img src="http://www.horochovec.com.br/blog/wp-content/uploads/2010/03/37.jpg" alt="" title="37" width="537" height="511" class="aligncenter size-full wp-image-385" /></a></p>
<p><a href="http://www.horochovec.com.br/blog/wp-content/uploads/2010/03/38.jpg"><img src="http://www.horochovec.com.br/blog/wp-content/uploads/2010/03/38.jpg" alt="" title="38" width="537" height="511" class="aligncenter size-full wp-image-386" /></a></p>
<p>Ok, agora basta configurarmos o clique do botão de salvar para que adicione novos contatos. </p>
<p>O primeiro passo é alterar o label do botão para &#8220;<em>Cadastrar</em>&#8220;.</p>
<p>O segundo passo é clicar com o botão direito sobre o botão de cadastro e selecionar a opção &#8220;Generate Service Call&#8221; e configure a opção da seguinte forma:</p>
<p><a href="http://www.horochovec.com.br/blog/wp-content/uploads/2010/03/39.jpg"><img src="http://www.horochovec.com.br/blog/wp-content/uploads/2010/03/39.jpg" alt="" title="39" width="537" height="511" class="aligncenter size-full wp-image-388" /></a></p>
<p>Ao terminar essa configuração, você será direcionado diretamente para a implementação do click do botão com a chamada do serviço remoto. A implementação gerada do método será a seguinte:</p>

<div class="wp_codebox_msgheader"><span class="right"><sup><a href="http://www.ericbess.com/ericblog/2008/03/03/wp-codebox/#examples" target="_blank" title="WP-CodeBox HowTo?"><span style="color: #99cc00">?</span></a></sup></span><span class="left2">Download <a href="http://www.horochovec.com.br/blog/wp-content/plugins/wp-codebox/wp-codebox.php?p=340&amp;download=FlexDuck.mxml">FlexDuck.mxml</a></span><div class="codebox_clear"></div></div><div class="wp_codebox"><table><tr id="p34015"><td class="line_numbers"><pre>1
2
3
4
5
6
</pre></td><td class="code" id="p340code15"><pre class="actionscript" style="font-family:monospace;">protected <span style="color: #000000; font-weight: bold;">function</span> button2_clickHandler<span style="color: #66cc66;">&#40;</span>event:MouseEvent<span style="color: #66cc66;">&#41;</span>:<span style="color: #0066CC;">void</span>
<span style="color: #66cc66;">&#123;</span>
	contato.<span style="color: #006600;">email</span> = emailTextInput.<span style="color: #0066CC;">text</span>;
	contato.<span style="color: #006600;">nome</span> = nomeTextInput.<span style="color: #0066CC;">text</span>;
	addContatoResult.<span style="color: #006600;">token</span> = contatoService.<span style="color: #006600;">addContato</span><span style="color: #66cc66;">&#40;</span><span style="color: #808080; font-style: italic;">/*Enter value(s) for */</span> arg0<span style="color: #66cc66;">&#41;</span>;
<span style="color: #66cc66;">&#125;</span></pre></td></tr></table></div>

<p>E você deverá fazer a seguinte alteração. Adicionar o parametro a ser enviado no método addContato() e inicializar o objeto contato, da seguinte forma:</p>

<div class="wp_codebox_msgheader"><span class="right"><sup><a href="http://www.ericbess.com/ericblog/2008/03/03/wp-codebox/#examples" target="_blank" title="WP-CodeBox HowTo?"><span style="color: #99cc00">?</span></a></sup></span><span class="left2">Download <a href="http://www.horochovec.com.br/blog/wp-content/plugins/wp-codebox/wp-codebox.php?p=340&amp;download=FlexDuck.mxml">FlexDuck.mxml</a></span><div class="codebox_clear"></div></div><div class="wp_codebox"><table><tr id="p34016"><td class="line_numbers"><pre>1
2
3
4
5
6
7
</pre></td><td class="code" id="p340code16"><pre class="actionscript" style="font-family:monospace;">protected <span style="color: #000000; font-weight: bold;">function</span> button2_clickHandler<span style="color: #66cc66;">&#40;</span>event:MouseEvent<span style="color: #66cc66;">&#41;</span>:<span style="color: #0066CC;">void</span>
<span style="color: #66cc66;">&#123;</span>
	contato = <span style="color: #000000; font-weight: bold;">new</span> Contato<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>;
	contato.<span style="color: #006600;">email</span> = emailTextInput.<span style="color: #0066CC;">text</span>;
	contato.<span style="color: #006600;">nome</span> = nomeTextInput.<span style="color: #0066CC;">text</span>;
	addContatoResult.<span style="color: #006600;">token</span> = contatoService.<span style="color: #006600;">addContato</span><span style="color: #66cc66;">&#40;</span>contato<span style="color: #66cc66;">&#41;</span>;
<span style="color: #66cc66;">&#125;</span></pre></td></tr></table></div>

<p>Com isso, nosso projeto estará enviado as informações para o Java. Agora, para finalizar, iremos adicionar um evento para disparar um método quando tivermos o resultado do serviço remoto.</p>
<p>No <em>CallResponder</em> com o id &#8220;<em>addContatoResult</em>&#8221; pressione o CTRL + SPACE para acionar o code complete e acione o event &#8220;<em>result</em>&#8220;, e em seguida, solicite para que seja adicionado o <em>ResultHandler</em> para o event adicionado, conforme imagens abaixo:</p>
<p><a href="http://www.horochovec.com.br/blog/wp-content/uploads/2010/03/40.jpg"><img src="http://www.horochovec.com.br/blog/wp-content/uploads/2010/03/40.jpg" alt="" title="40" width="537" height="322" class="aligncenter size-full wp-image-391" /></a></p>
<p><a href="http://www.horochovec.com.br/blog/wp-content/uploads/2010/03/41.jpg"><img src="http://www.horochovec.com.br/blog/wp-content/uploads/2010/03/41.jpg" alt="" title="41" width="537" height="322" class="aligncenter size-full wp-image-392" /></a></p>
<p>E na função adicionada no código devemos fazer a seguinte implementação:</p>

<div class="wp_codebox_msgheader"><span class="right"><sup><a href="http://www.ericbess.com/ericblog/2008/03/03/wp-codebox/#examples" target="_blank" title="WP-CodeBox HowTo?"><span style="color: #99cc00">?</span></a></sup></span><span class="left2">Download <a href="http://www.horochovec.com.br/blog/wp-content/plugins/wp-codebox/wp-codebox.php?p=340&amp;download=FlexDuck.mxml">FlexDuck.mxml</a></span><div class="codebox_clear"></div></div><div class="wp_codebox"><table><tr id="p34017"><td class="line_numbers"><pre>1
2
3
4
5
</pre></td><td class="code" id="p340code17"><pre class="actionscript" style="font-family:monospace;">protected <span style="color: #000000; font-weight: bold;">function</span> addContatoResult_resultHandler<span style="color: #66cc66;">&#40;</span>event:ResultEvent<span style="color: #66cc66;">&#41;</span>:<span style="color: #0066CC;">void</span>
<span style="color: #66cc66;">&#123;</span>
	contato = <span style="color: #000000; font-weight: bold;">new</span> Contato<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>;
	getListContatoResult.<span style="color: #006600;">token</span> = contatoService.<span style="color: #006600;">getListContato</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>;
<span style="color: #66cc66;">&#125;</span></pre></td></tr></table></div>

<p>Rodando a aplicação, teremos como resultado no navegador o seguinte:</p>
<p><a href="http://www.horochovec.com.br/blog/wp-content/uploads/2010/03/42.jpg"><img src="http://www.horochovec.com.br/blog/wp-content/uploads/2010/03/42.jpg" alt="" title="" width="418" height="410" class="aligncenter size-full wp-image-394" /></a></p>
<p>E como resultado final no código fonte:</p>

<div class="wp_codebox_msgheader"><span class="right"><sup><a href="http://www.ericbess.com/ericblog/2008/03/03/wp-codebox/#examples" target="_blank" title="WP-CodeBox HowTo?"><span style="color: #99cc00">?</span></a></sup></span><span class="left2">Download <a href="http://www.horochovec.com.br/blog/wp-content/plugins/wp-codebox/wp-codebox.php?p=340&amp;download=FlexDuck.mxml">FlexDuck.mxml</a></span><div class="codebox_clear"></div></div><div class="wp_codebox"><table><tr id="p34018"><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
</pre></td><td class="code" id="p340code18"><pre class="actionscript" style="font-family:monospace;"><span style="color: #66cc66;">&lt;</span>?<span style="color: #0066CC;">xml</span> <span style="color: #0066CC;">version</span>=<span style="color: #ff0000;">&quot;1.0&quot;</span> encoding=<span style="color: #ff0000;">&quot;utf-8&quot;</span>?<span style="color: #66cc66;">&gt;</span>
<span style="color: #66cc66;">&lt;</span>s:Application xmlns:fx=<span style="color: #ff0000;">&quot;http://ns.adobe.com/mxml/2009&quot;</span> 
			   xmlns:s=<span style="color: #ff0000;">&quot;library://ns.adobe.com/flex/spark&quot;</span> 
			   xmlns:mx=<span style="color: #ff0000;">&quot;library://ns.adobe.com/flex/mx&quot;</span> <span style="color: #0066CC;">height</span>=<span style="color: #ff0000;">&quot;419&quot;</span> xmlns:services=<span style="color: #ff0000;">&quot;services.*&quot;</span> xmlns:valueObjects=<span style="color: #ff0000;">&quot;valueObjects.*&quot;</span><span style="color: #66cc66;">&gt;</span>
	<span style="color: #66cc66;">&lt;</span>fx:Script<span style="color: #66cc66;">&gt;</span>
		<span style="color: #66cc66;">&lt;!</span><span style="color: #66cc66;">&#91;</span>CDATA<span style="color: #66cc66;">&#91;</span>
			<span style="color: #0066CC;">import</span> mx.<span style="color: #006600;">controls</span>.<span style="color: #006600;">Alert</span>;
			<span style="color: #0066CC;">import</span> mx.<span style="color: #006600;">rpc</span>.<span style="color: #006600;">events</span>.<span style="color: #006600;">ResultEvent</span>;
&nbsp;
			protected <span style="color: #000000; font-weight: bold;">function</span> button_clickHandler<span style="color: #66cc66;">&#40;</span>event:MouseEvent<span style="color: #66cc66;">&#41;</span>:<span style="color: #0066CC;">void</span>
			<span style="color: #66cc66;">&#123;</span>
				getListContatoResult.<span style="color: #006600;">token</span> = contatoService.<span style="color: #006600;">getListContato</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>;
			<span style="color: #66cc66;">&#125;</span>
&nbsp;
&nbsp;
			protected <span style="color: #000000; font-weight: bold;">function</span> button2_clickHandler<span style="color: #66cc66;">&#40;</span>event:MouseEvent<span style="color: #66cc66;">&#41;</span>:<span style="color: #0066CC;">void</span>
			<span style="color: #66cc66;">&#123;</span>
				<span style="color: #000000; font-weight: bold;">var</span> contato : Contato = <span style="color: #000000; font-weight: bold;">new</span> Contato<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>;
				contato.<span style="color: #006600;">email</span> = emailTextInput.<span style="color: #0066CC;">text</span>;
				contato.<span style="color: #006600;">nome</span> = nomeTextInput.<span style="color: #0066CC;">text</span>;
				addContatoResult.<span style="color: #006600;">token</span> = contatoService.<span style="color: #006600;">addContato</span><span style="color: #66cc66;">&#40;</span>contato<span style="color: #66cc66;">&#41;</span>;
			<span style="color: #66cc66;">&#125;</span>
&nbsp;
&nbsp;
			protected <span style="color: #000000; font-weight: bold;">function</span> addContatoResult_resultHandler<span style="color: #66cc66;">&#40;</span>event:ResultEvent<span style="color: #66cc66;">&#41;</span>:<span style="color: #0066CC;">void</span>
			<span style="color: #66cc66;">&#123;</span>
				contato = <span style="color: #000000; font-weight: bold;">new</span> Contato<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>;
				getListContatoResult.<span style="color: #006600;">token</span> = contatoService.<span style="color: #006600;">getListContato</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>;
			<span style="color: #66cc66;">&#125;</span>
&nbsp;
		<span style="color: #66cc66;">&#93;</span><span style="color: #66cc66;">&#93;</span><span style="color: #66cc66;">&gt;</span>
	<span style="color: #66cc66;">&lt;/</span>fx:Script<span style="color: #66cc66;">&gt;</span>
&nbsp;
&nbsp;
	<span style="color: #66cc66;">&lt;</span>fx:Declarations<span style="color: #66cc66;">&gt;</span>
		<span style="color: #66cc66;">&lt;</span>s:CallResponder id=<span style="color: #ff0000;">&quot;getListContatoResult&quot;</span><span style="color: #66cc66;">/&gt;</span>
		<span style="color: #66cc66;">&lt;</span>services:ContatoService id=<span style="color: #ff0000;">&quot;contatoService&quot;</span> fault=<span style="color: #ff0000;">&quot;Alert.show(event.fault.faultString + '<span style="color: #000099; font-weight: bold;">\n</span>' + event.fault.faultDetail)&quot;</span> showBusyCursor=<span style="color: #ff0000;">&quot;true&quot;</span><span style="color: #66cc66;">/&gt;</span>
		<span style="color: #66cc66;">&lt;</span>valueObjects:Contato id=<span style="color: #ff0000;">&quot;contato&quot;</span><span style="color: #66cc66;">/&gt;</span>
		<span style="color: #66cc66;">&lt;</span>s:CallResponder id=<span style="color: #ff0000;">&quot;addContatoResult&quot;</span> result=<span style="color: #ff0000;">&quot;addContatoResult_resultHandler(event)&quot;</span><span style="color: #66cc66;">/&gt;</span>
	<span style="color: #66cc66;">&lt;/</span>fx:Declarations<span style="color: #66cc66;">&gt;</span>
&nbsp;
	<span style="color: #66cc66;">&lt;</span>fx:Binding source=<span style="color: #ff0000;">&quot;grid.selectedItem as Contato&quot;</span> destination=<span style="color: #ff0000;">&quot;contato&quot;</span><span style="color: #66cc66;">/&gt;</span>
&nbsp;
	<span style="color: #66cc66;">&lt;</span>s:Panel <span style="color: #0066CC;">width</span>=<span style="color: #ff0000;">&quot;400&quot;</span> <span style="color: #0066CC;">height</span>=<span style="color: #ff0000;">&quot;137&quot;</span> title=<span style="color: #ff0000;">&quot;Cadastro&quot;</span> <span style="color: #0066CC;">left</span>=<span style="color: #ff0000;">&quot;10&quot;</span> top=<span style="color: #ff0000;">&quot;10&quot;</span><span style="color: #66cc66;">&gt;</span>
		<span style="color: #66cc66;">&lt;</span>mx:Form defaultButton=<span style="color: #ff0000;">&quot;{button2}&quot;</span> x=<span style="color: #ff0000;">&quot;1&quot;</span> y=<span style="color: #ff0000;">&quot;-4&quot;</span> bottom=<span style="color: #ff0000;">&quot;0&quot;</span> <span style="color: #0066CC;">left</span>=<span style="color: #ff0000;">&quot;0&quot;</span> <span style="color: #0066CC;">right</span>=<span style="color: #ff0000;">&quot;0&quot;</span> top=<span style="color: #ff0000;">&quot;0&quot;</span><span style="color: #66cc66;">&gt;</span>
			<span style="color: #66cc66;">&lt;</span>mx:FormItem label=<span style="color: #ff0000;">&quot;Email&quot;</span><span style="color: #66cc66;">&gt;</span>
				<span style="color: #66cc66;">&lt;</span>s:TextInput id=<span style="color: #ff0000;">&quot;emailTextInput&quot;</span> <span style="color: #0066CC;">text</span>=<span style="color: #ff0000;">&quot;{contato.email}&quot;</span><span style="color: #66cc66;">/&gt;</span>
			<span style="color: #66cc66;">&lt;/</span>mx:FormItem<span style="color: #66cc66;">&gt;</span>
			<span style="color: #66cc66;">&lt;</span>mx:FormItem label=<span style="color: #ff0000;">&quot;Nome&quot;</span><span style="color: #66cc66;">&gt;</span>
				<span style="color: #66cc66;">&lt;</span>s:TextInput id=<span style="color: #ff0000;">&quot;nomeTextInput&quot;</span> <span style="color: #0066CC;">text</span>=<span style="color: #ff0000;">&quot;{contato.nome}&quot;</span><span style="color: #66cc66;">/&gt;</span>
			<span style="color: #66cc66;">&lt;/</span>mx:FormItem<span style="color: #66cc66;">&gt;</span>
			<span style="color: #66cc66;">&lt;</span>s:<span style="color: #0066CC;">Button</span> id=<span style="color: #ff0000;">&quot;button2&quot;</span> label=<span style="color: #ff0000;">&quot;Cadastrar&quot;</span> click=<span style="color: #ff0000;">&quot;button2_clickHandler(event)&quot;</span><span style="color: #66cc66;">/&gt;</span>
		<span style="color: #66cc66;">&lt;/</span>mx:Form<span style="color: #66cc66;">&gt;</span>
&nbsp;
	<span style="color: #66cc66;">&lt;/</span>s:Panel<span style="color: #66cc66;">&gt;</span>
&nbsp;
	<span style="color: #66cc66;">&lt;</span>s:Panel x=<span style="color: #ff0000;">&quot;12&quot;</span> y=<span style="color: #ff0000;">&quot;166&quot;</span> <span style="color: #0066CC;">width</span>=<span style="color: #ff0000;">&quot;400&quot;</span> <span style="color: #0066CC;">height</span>=<span style="color: #ff0000;">&quot;227&quot;</span> title=<span style="color: #ff0000;">&quot;Pesquisa&quot;</span> <span style="color: #0066CC;">left</span>=<span style="color: #ff0000;">&quot;10&quot;</span><span style="color: #66cc66;">&gt;</span>
		<span style="color: #66cc66;">&lt;</span>mx:DataGrid x=<span style="color: #ff0000;">&quot;10&quot;</span> y=<span style="color: #ff0000;">&quot;10&quot;</span> bottom=<span style="color: #ff0000;">&quot;30&quot;</span> <span style="color: #0066CC;">left</span>=<span style="color: #ff0000;">&quot;5&quot;</span> <span style="color: #0066CC;">right</span>=<span style="color: #ff0000;">&quot;5&quot;</span> top=<span style="color: #ff0000;">&quot;5&quot;</span> id=<span style="color: #ff0000;">&quot;grid&quot;</span> dataProvider=<span style="color: #ff0000;">&quot;{getListContatoResult.lastResult}&quot;</span><span style="color: #66cc66;">&gt;</span>
			<span style="color: #66cc66;">&lt;</span>mx:columns<span style="color: #66cc66;">&gt;</span>
				<span style="color: #66cc66;">&lt;</span>mx:DataGridColumn headerText=<span style="color: #ff0000;">&quot;email&quot;</span> dataField=<span style="color: #ff0000;">&quot;email&quot;</span><span style="color: #66cc66;">/&gt;</span>
				<span style="color: #66cc66;">&lt;</span>mx:DataGridColumn headerText=<span style="color: #ff0000;">&quot;nome&quot;</span> dataField=<span style="color: #ff0000;">&quot;nome&quot;</span><span style="color: #66cc66;">/&gt;</span>
			<span style="color: #66cc66;">&lt;/</span>mx:columns<span style="color: #66cc66;">&gt;</span>
		<span style="color: #66cc66;">&lt;/</span>mx:DataGrid<span style="color: #66cc66;">&gt;</span>
		<span style="color: #66cc66;">&lt;</span>s:<span style="color: #0066CC;">Button</span> x=<span style="color: #ff0000;">&quot;-1&quot;</span> y=<span style="color: #ff0000;">&quot;163&quot;</span> label=<span style="color: #ff0000;">&quot;Listar todos&quot;</span> <span style="color: #0066CC;">left</span>=<span style="color: #ff0000;">&quot;5&quot;</span> bottom=<span style="color: #ff0000;">&quot;5&quot;</span> id=<span style="color: #ff0000;">&quot;button&quot;</span> click=<span style="color: #ff0000;">&quot;button_clickHandler(event)&quot;</span><span style="color: #66cc66;">/&gt;</span>
	<span style="color: #66cc66;">&lt;/</span>s:Panel<span style="color: #66cc66;">&gt;</span>
<span style="color: #66cc66;">&lt;/</span>s:Application<span style="color: #66cc66;">&gt;</span></pre></td></tr></table></div>

<p>Para fazer o download do projeto clique <a href="http://www.horochovec.com.br/blog/FlexDuck20100324.zip" target="_new">aqui</a>.</p>
<p>Espero ter ajudado, um abraço <img src='http://www.horochovec.com.br/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://www.horochovec.com.br/blog/2010/03/24/flex-4-blazeds-4-java-datawizards/feed/</wfw:commentRss>
		<slash:comments>17</slash:comments>
		</item>
		<item>
		<title>Flash Builder + Flex SDK 4 + Java + BlazeDS &#8211; Tutorial</title>
		<link>http://www.horochovec.com.br/blog/2010/03/23/flash-builder-flex-sdk-4-java-blazeds-tutorial/</link>
		<comments>http://www.horochovec.com.br/blog/2010/03/23/flash-builder-flex-sdk-4-java-blazeds-tutorial/#comments</comments>
		<pubDate>Tue, 23 Mar 2010 16:20:57 +0000</pubDate>
		<dc:creator>Stefan Horochovec</dc:creator>
				<category><![CDATA[BlazeDS]]></category>
		<category><![CDATA[Flex]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[Flash Builder]]></category>
		<category><![CDATA[Flash Builder 4]]></category>
		<category><![CDATA[Flex 4]]></category>
		<category><![CDATA[Flex SDK 4]]></category>
		<category><![CDATA[Tutorial]]></category>

		<guid isPermaLink="false">http://www.horochovec.com.br/blog/?p=273</guid>
		<description><![CDATA[Olá pessoal! Depois de alguns dias sem postar nada no blog, vou atender ao pedido de alguns colegas que fizeram um curso de Scrum a uns dias atrás e postar algo no blog sobre como começar um projeto com Java e Flex, como faço para &#8220;instalar&#8221; o BlazeDS e fazer minha primeira comunicação. If you [...]]]></description>
			<content:encoded><![CDATA[<p>Olá pessoal!</p>
<p>Depois de alguns dias sem postar nada no blog, vou atender ao pedido de alguns colegas que fizeram um curso de Scrum a uns dias atrás e postar algo no blog sobre como começar um projeto com Java e Flex, como faço para &#8220;instalar&#8221; o BlazeDS e fazer minha primeira comunicação.</p>
<p>If you want to see this post in english, click <a href="http://www.horochovec.com/2010/03/29/flash-builder-flex-sdk-4-java-blazeds-tutorial/">here</a>.</p>
<p><span id="more-273"></span></p>
<p>Para quem está iniciando no desenvolvimento Flex com Java como back-end e está optando por trabalhar com Remote Objects precisa trabalhar com algo que faça a comunicação entre Flex e Java.</p>
<p>Existem diversas opções hoje no mercado, e a própria Adobe disponibiliza dois produtos para isso.  O objetivo desse tutorial é exemplificar o uso do BlazeDS para essa comunicação.</p>
<p>O BlazeDS é uma ferramenta open-source, e hoje é amplamente utilizada para a comunicação Java &#8211; Flex. Tem como objetivo prover ao desenvolvedor Flex uma forma de se comunicar com seu back-end através de <em>Remote Objects</em> ou comunicação <em>Real-Time</em> através de <em>Messages. </em></p>
<p><em> </em>Vale lembrar que o BlazeDS pode ser utilizado para comunicações de aplicações desenvolvidas em Flex para Web (Flash Player) ou para Desktop (AIR).</p>
<p>Mas como iniciar? Primeiramente, devemos fazer o download (clique <a href="http://flexorg.wip3.adobe.com/blazeds/3.0.x/milestone/3978/blazeds-bin-3.2.0.3978.zip" target="_blank">aqui</a> para o download) através do site oficial do <a href="http://opensource.adobe.com/wiki/display/blazeds/BlazeDS" target="_blank">BlazeDS</a>.</p>
<p>O download que estamos fazendo é a versão binária, contendo um arquivo .WAR que contém os arquivos .xml e os .jars necessários para a sua utilização. Também é possível fazer o download do código-fonte do BlazeDS clicando <a href="http://flexorg.wip3.adobe.com/blazeds/3.0.x/milestone/3978/blazeds-src-3.2.0.3978.zip" target="_blank">aqui</a>.</p>
<p>Após o download e sua descompactação, também é necessário descompactar o arquivo <em>blazeds.war. </em>Para isso, você poderá utilizar um descompactador como o WinRAR por exemplo. Fazendo isso, obteremos a seguinte estrutura:</p>
<p style="text-align: center;"><a href="http://www.horochovec.com.br/blog/wp-content/uploads/2010/03/1.jpg"><img class="size-full wp-image-277  aligncenter" src="http://www.horochovec.com.br/blog/wp-content/uploads/2010/03/1.jpg" alt="" width="299" height="172" /></a></p>
<p>O conteúdo da pasta META-INF será desconsiderado. Levaremos em consideração apenas o conteúdo da pasta WEB-INF conforme seguinte apresentação:</p>
<p style="text-align: center;"><a href="http://www.horochovec.com.br/blog/wp-content/uploads/2010/03/2.jpg"><img class="size-full wp-image-279  aligncenter" src="http://www.horochovec.com.br/blog/wp-content/uploads/2010/03/2.jpg" alt="" width="265" height="211" /></a></p>
<p>A pasta <em>classes</em> e <em>src </em>serão desconsideradas nesse tutorial também.</p>
<p>Dentro da pasta <em>flex</em>, temos os arquivos XMLs necessários para configuração em nosso projeto que será criado no Java, e na pasta <em>lib</em>, temos as bibliotecas java (*.jar) que deverão ser incorporados em nosso projeto. E o arquivo <em>web.xml</em> contém as informações necessárias para a configuração do servlet em nosso projeto.</p>
<p>Nesse artigo, o software utilizado para criação e desenvolvimento do projeto Java é Eclipse Galileu junto com o  WebTools. Você pode tranquilamente adaptar esse tutorial para qualquer IDE que você utilize em seu dia-a-dia.</p>
<p>Para iniciar um projeto, eu escolhi a opção <em>File -&gt; New -&gt; Web -&gt; Dynamic Web Project</em>, conforme abaixo:</p>
<p style="text-align: center;"><a href="http://www.horochovec.com.br/blog/wp-content/uploads/2010/03/31.jpg"><img class="size-full wp-image-283  aligncenter" src="http://www.horochovec.com.br/blog/wp-content/uploads/2010/03/31.jpg" alt="" width="543" height="526" /></a></p>
<p>E depois configurei o projeto da seguinte maneira:</p>
<p style="text-align: center;"><a href="http://www.horochovec.com.br/blog/wp-content/uploads/2010/03/4.jpg"><img class="size-full wp-image-284  aligncenter" src="http://www.horochovec.com.br/blog/wp-content/uploads/2010/03/4.jpg" alt="" width="541" height="720" /></a></p>
<p style="text-align: center;"><a href="http://www.horochovec.com.br/blog/wp-content/uploads/2010/03/5.jpg"><img class="size-full wp-image-285  aligncenter" src="http://www.horochovec.com.br/blog/wp-content/uploads/2010/03/5.jpg" alt="" width="565" height="410" /></a></p>
<p style="text-align: center;"><a href="http://www.horochovec.com.br/blog/wp-content/uploads/2010/03/61.jpg"><img class="size-full wp-image-287  aligncenter" src="http://www.horochovec.com.br/blog/wp-content/uploads/2010/03/61.jpg" alt="" width="565" height="410" /></a></p>
<p>Bom, depois de configurar o projeto, iremos criar um Bean para serializarmos algumas informações que serão enviadas para o Flex. A idéia é bastante simples, irei criar um model para uma simples agenda de contato.</p>

<div class="wp_codebox_msgheader"><span class="right"><sup><a href="http://www.ericbess.com/ericblog/2008/03/03/wp-codebox/#examples" target="_blank" title="WP-CodeBox HowTo?"><span style="color: #99cc00">?</span></a></sup></span><span class="left2">Download <a href="http://www.horochovec.com.br/blog/wp-content/plugins/wp-codebox/wp-codebox.php?p=273&amp;download=Contato.java">Contato.java</a></span><div class="codebox_clear"></div></div><div class="wp_codebox"><table><tr id="p27331"><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
</pre></td><td class="code" id="p273code31"><pre class="java" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">package</span> <span style="color: #006699;">br.com.horochovec.model</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">java.io.Serializable</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #008000; font-style: italic; font-weight: bold;">/**
 * Modelo para agenda de contato
 * @author Stefan Horochovec 
 */</span>
<span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000000; font-weight: bold;">class</span> Contato <span style="color: #000000; font-weight: bold;">implements</span> <a href="http://www.google.com/search?hl=en&amp;q=allinurl%3Aserializable+java.sun.com&amp;btnI=I%27m%20Feeling%20Lucky"><span style="color: #003399;">Serializable</span></a> <span style="color: #009900;">&#123;</span>
&nbsp;
	<span style="color: #008000; font-style: italic; font-weight: bold;">/**
	 *
	 */</span>
	<span style="color: #000000; font-weight: bold;">private</span> <span style="color: #000000; font-weight: bold;">static</span> <span style="color: #000000; font-weight: bold;">final</span> <span style="color: #000066; font-weight: bold;">long</span> serialVersionUID <span style="color: #339933;">=</span> 1L<span style="color: #339933;">;</span>
&nbsp;
	<span style="color: #000000; font-weight: bold;">private</span> <a href="http://www.google.com/search?hl=en&amp;q=allinurl%3Astring+java.sun.com&amp;btnI=I%27m%20Feeling%20Lucky"><span style="color: #003399;">String</span></a> nome<span style="color: #339933;">;</span>
&nbsp;
	<span style="color: #000000; font-weight: bold;">private</span> <a href="http://www.google.com/search?hl=en&amp;q=allinurl%3Astring+java.sun.com&amp;btnI=I%27m%20Feeling%20Lucky"><span style="color: #003399;">String</span></a> email<span style="color: #339933;">;</span>
&nbsp;
	<span style="color: #000000; font-weight: bold;">public</span> <a href="http://www.google.com/search?hl=en&amp;q=allinurl%3Astring+java.sun.com&amp;btnI=I%27m%20Feeling%20Lucky"><span style="color: #003399;">String</span></a> getNome<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
		<span style="color: #000000; font-weight: bold;">return</span> nome<span style="color: #339933;">;</span>
	<span style="color: #009900;">&#125;</span>
&nbsp;
	<span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000066; font-weight: bold;">void</span> setNome<span style="color: #009900;">&#40;</span><a href="http://www.google.com/search?hl=en&amp;q=allinurl%3Astring+java.sun.com&amp;btnI=I%27m%20Feeling%20Lucky"><span style="color: #003399;">String</span></a> nome<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
		<span style="color: #000000; font-weight: bold;">this</span>.<span style="color: #006633;">nome</span> <span style="color: #339933;">=</span> nome<span style="color: #339933;">;</span>
	<span style="color: #009900;">&#125;</span>
&nbsp;
	<span style="color: #000000; font-weight: bold;">public</span> <a href="http://www.google.com/search?hl=en&amp;q=allinurl%3Astring+java.sun.com&amp;btnI=I%27m%20Feeling%20Lucky"><span style="color: #003399;">String</span></a> getEmail<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
		<span style="color: #000000; font-weight: bold;">return</span> email<span style="color: #339933;">;</span>
	<span style="color: #009900;">&#125;</span>
&nbsp;
	<span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000066; font-weight: bold;">void</span> setEmail<span style="color: #009900;">&#40;</span><a href="http://www.google.com/search?hl=en&amp;q=allinurl%3Astring+java.sun.com&amp;btnI=I%27m%20Feeling%20Lucky"><span style="color: #003399;">String</span></a> email<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
		<span style="color: #000000; font-weight: bold;">this</span>.<span style="color: #006633;">email</span> <span style="color: #339933;">=</span> email<span style="color: #339933;">;</span>
	<span style="color: #009900;">&#125;</span>
&nbsp;
<span style="color: #009900;">&#125;</span></pre></td></tr></table></div>

<p>E em seguida, criarei um serviço que irá adicionar em um ArrayList os contatos que serão enviados do Flex para o Java.</p>

<div class="wp_codebox_msgheader"><span class="right"><sup><a href="http://www.ericbess.com/ericblog/2008/03/03/wp-codebox/#examples" target="_blank" title="WP-CodeBox HowTo?"><span style="color: #99cc00">?</span></a></sup></span><span class="left2">Download <a href="http://www.horochovec.com.br/blog/wp-content/plugins/wp-codebox/wp-codebox.php?p=273&amp;download=ContatoService.java">ContatoService.java</a></span><div class="codebox_clear"></div></div><div class="wp_codebox"><table><tr id="p27332"><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
</pre></td><td class="code" id="p273code32"><pre class="java" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">package</span> <span style="color: #006699;">br.com.horochovec.service</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">java.util.ArrayList</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">br.com.horochovec.model.Contato</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #008000; font-style: italic; font-weight: bold;">/**
 * Serviço para manutenção dos contatos
 * @author Stefan Horochovec 
 */</span>
<span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000000; font-weight: bold;">class</span> ContatoService <span style="color: #009900;">&#123;</span>
&nbsp;
	<span style="color: #000000; font-weight: bold;">private</span> <span style="color: #000000; font-weight: bold;">static</span> <a href="http://www.google.com/search?hl=en&amp;q=allinurl%3Aarraylist+java.sun.com&amp;btnI=I%27m%20Feeling%20Lucky"><span style="color: #003399;">ArrayList</span></a> listContato <span style="color: #339933;">=</span> <span style="color: #000000; font-weight: bold;">new</span> <a href="http://www.google.com/search?hl=en&amp;q=allinurl%3Aarraylist+java.sun.com&amp;btnI=I%27m%20Feeling%20Lucky"><span style="color: #003399;">ArrayList</span></a><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> 
&nbsp;
	<span style="color: #008000; font-style: italic; font-weight: bold;">/**
	 * Adiciona um contato a lista
	 * @param contato
	 */</span>
	<span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000066; font-weight: bold;">void</span> addContato<span style="color: #009900;">&#40;</span>Contato contato<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
		listContato.<span style="color: #006633;">add</span><span style="color: #009900;">&#40;</span>contato<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #009900;">&#125;</span>
&nbsp;
	<span style="color: #008000; font-style: italic; font-weight: bold;">/**
	 * Retorna a lista de contatos
	 * @return
	 */</span>
	<span style="color: #000000; font-weight: bold;">public</span> <a href="http://www.google.com/search?hl=en&amp;q=allinurl%3Aarraylist+java.sun.com&amp;btnI=I%27m%20Feeling%20Lucky"><span style="color: #003399;">ArrayList</span></a> getListContato<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
		<span style="color: #000000; font-weight: bold;">return</span> listContato<span style="color: #339933;">;</span>
	<span style="color: #009900;">&#125;</span>
&nbsp;
<span style="color: #009900;">&#125;</span></pre></td></tr></table></div>

<p>Após isso, já temos uma simples aplicação pronta para trabalhar com o Flex, basta apenas configurar os arquivos .XML para que o BlazeDS possa funcionar.</p>
<p>O primeiro arquivo que iremos configurar, é o arquivo web.xml que fica dentro da pasta <em>WebContent/WEB-INF/</em>. Para essa configuração, iremos adicionar o conteúdo do arquivo web.xml que veio dentro do arquivo blazeds.war que foi previamente descompactado. O resultado será:</p>

<div class="wp_codebox_msgheader"><span class="right"><sup><a href="http://www.ericbess.com/ericblog/2008/03/03/wp-codebox/#examples" target="_blank" title="WP-CodeBox HowTo?"><span style="color: #99cc00">?</span></a></sup></span><span class="left2">Download <a href="http://www.horochovec.com.br/blog/wp-content/plugins/wp-codebox/wp-codebox.php?p=273&amp;download=web.xml">web.xml</a></span><div class="codebox_clear"></div></div><div class="wp_codebox"><table><tr id="p27333"><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
</pre></td><td class="code" id="p273code33"><pre class="xml" style="font-family:monospace;"><span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;?xml</span> <span style="color: #000066;">version</span>=<span style="color: #ff0000;">&quot;1.0&quot;</span> <span style="color: #000066;">encoding</span>=<span style="color: #ff0000;">&quot;UTF-8&quot;</span><span style="color: #000000; font-weight: bold;">?&gt;</span></span>
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;web-app</span> <span style="color: #000066;">id</span>=<span style="color: #ff0000;">&quot;WebApp_ID&quot;</span> <span style="color: #000066;">version</span>=<span style="color: #ff0000;">&quot;2.4&quot;</span> <span style="color: #000066;">xmlns</span>=<span style="color: #ff0000;">&quot;http://java.sun.com/xml/ns/j2ee&quot;</span> <span style="color: #000066;">xmlns:xsi</span>=<span style="color: #ff0000;">&quot;http://www.w3.org/2001/XMLSchema-instance&quot;</span> <span style="color: #000066;">xsi:schemaLocation</span>=<span style="color: #ff0000;">&quot;http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span>
	<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;display-name<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>FlexDuck<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/display-name<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
	<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;welcome-file-list<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
		<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;welcome-file<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>FlexDuck.html<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/welcome-file<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
	<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/welcome-file-list<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
&nbsp;
&nbsp;
    <span style="color: #808080; font-style: italic;">&lt;!-- Http Flex Session attribute and binding listener support --&gt;</span>
    <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;listener<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
        <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;listener-class<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>flex.messaging.HttpFlexSession<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/listener-class<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
    <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/listener<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
&nbsp;
    <span style="color: #808080; font-style: italic;">&lt;!-- MessageBroker Servlet --&gt;</span>
    <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;servlet<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
        <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;servlet-name<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>MessageBrokerServlet<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/servlet-name<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
        <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;servlet-class<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>flex.messaging.MessageBrokerServlet<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/servlet-class<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
        <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;init-param<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
            <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;param-name<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>services.configuration.file<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/param-name<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
            <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;param-value<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>/WEB-INF/flex/services-config.xml<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/param-value<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
       <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/init-param<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
        <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;load-on-startup<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>1<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/load-on-startup<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
    <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/servlet<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
&nbsp;
    <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;servlet-mapping<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
        <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;servlet-name<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>MessageBrokerServlet<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/servlet-name<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
        <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;url-pattern<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>/messagebroker/*<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/url-pattern<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
    <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/servlet-mapping<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/web-app<span style="color: #000000; font-weight: bold;">&gt;</span></span></span></pre></td></tr></table></div>

<p>Feito isso, iremos adicionar dentro da pasta <em>WebContent</em> a pasta <em>flex</em> que foi previamente descompactada do arquivo <em>blazeds.war</em>, e também todo o conteúdo da pasta lib para dentro do diretório <em>WebContent/WEB-INF/lib</em> , obtendo o seguinte resultado:</p>
<p><a href="http://www.horochovec.com.br/blog/wp-content/uploads/2010/03/71.jpg"><img src="http://www.horochovec.com.br/blog/wp-content/uploads/2010/03/71.jpg" alt="" title="" width="560" height="525" class="aligncenter size-full wp-image-298" /></a></p>
<p>Feito isso, iremos configurar o único arquivo .xml do BlazeDS para que esse exemplo funcione. O arquivo WEB-INF/flex/remoting-config.xml. Iremos adicionar uma configuração para informar ao BlazeDS sobre o serviço ContatoService que foi criado anteriormente, conforme abaixo:</p>

<div class="wp_codebox_msgheader"><span class="right"><sup><a href="http://www.ericbess.com/ericblog/2008/03/03/wp-codebox/#examples" target="_blank" title="WP-CodeBox HowTo?"><span style="color: #99cc00">?</span></a></sup></span><span class="left2">Download <a href="http://www.horochovec.com.br/blog/wp-content/plugins/wp-codebox/wp-codebox.php?p=273&amp;download=remoting-config.xml">remoting-config.xml</a></span><div class="codebox_clear"></div></div><div class="wp_codebox"><table><tr id="p27334"><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
</pre></td><td class="code" id="p273code34"><pre class="xml" style="font-family:monospace;"><span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;?xml</span> <span style="color: #000066;">version</span>=<span style="color: #ff0000;">&quot;1.0&quot;</span> <span style="color: #000066;">encoding</span>=<span style="color: #ff0000;">&quot;UTF-8&quot;</span><span style="color: #000000; font-weight: bold;">?&gt;</span></span>
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;service</span> <span style="color: #000066;">id</span>=<span style="color: #ff0000;">&quot;remoting-service&quot;</span> </span>
<span style="color: #009900;">    <span style="color: #000066;">class</span>=<span style="color: #ff0000;">&quot;flex.messaging.services.RemotingService&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span>
&nbsp;
    <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;adapters<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
        <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;adapter-definition</span> <span style="color: #000066;">id</span>=<span style="color: #ff0000;">&quot;java-object&quot;</span> <span style="color: #000066;">class</span>=<span style="color: #ff0000;">&quot;flex.messaging.services.remoting.adapters.JavaAdapter&quot;</span> <span style="color: #000066;">default</span>=<span style="color: #ff0000;">&quot;true&quot;</span><span style="color: #000000; font-weight: bold;">/&gt;</span></span>
    <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/adapters<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
&nbsp;
    <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;default-channels<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
        <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;channel</span> <span style="color: #000066;">ref</span>=<span style="color: #ff0000;">&quot;my-amf&quot;</span><span style="color: #000000; font-weight: bold;">/&gt;</span></span>
    <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/default-channels<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
&nbsp;
    <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;destination</span> <span style="color: #000066;">id</span>=<span style="color: #ff0000;">&quot;ContatoService&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span>
    	<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;properties<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
    		<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;source<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>br.com.horochovec.service.ContatoService<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/source<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
    	<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/properties<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
    <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/destination<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/service<span style="color: #000000; font-weight: bold;">&gt;</span></span></span></pre></td></tr></table></div>

<p>Após essa última configuração, podemos exportar o nosso projeto para um servidor web. Nesse caso, utilizaremos o <a href="http://tomcat.apache.org/" target="_new">Tomcat 6.x</a>. Neste artigo não entrarei em detalhes de sua instalação e configuração.</p>
<p>Bom, as configurações no projeto Java já foram finalizadas, e considerando que o deploy da aplicação dentro do Tomcat já foi realizado, a partir deste momento iremos trabalhar diretamente com o Flex. </p>
<p>Neste artigo irei demonstrar a comunicação utilizando o Flash Builder e a versão do Flex 4. Você pode fazer o download da versão 4.0 do Flash Builder e do Flex 4 SDK <a href="http://www.adobe.com/products/flashbuilder/" target="_new">aqui</a>.</p>
<p>Após instalado e iniciado o Flash Builder, iremos criar um projeto no seguinte molde:</p>
<p><a href="http://www.horochovec.com.br/blog/wp-content/uploads/2010/03/11.jpg"><img src="http://www.horochovec.com.br/blog/wp-content/uploads/2010/03/11.jpg" alt="" title="" width="450" height="459" class="aligncenter size-full wp-image-308" /></a></p>
<p><a href="http://www.horochovec.com.br/blog/wp-content/uploads/2010/03/12.jpg"><img src="http://www.horochovec.com.br/blog/wp-content/uploads/2010/03/12.jpg" alt="" title="" width="450" height="325" class="aligncenter size-full wp-image-309" /></a></p>
<p>As configurações feitas na segunda tela de configuração são bastante importantes. Fazendo elas da forma correta, você estará apto a iniciar o projeto sem fazer novas configurações. </p>
<p>Na primeira linha, em <strong>Root Folder</strong>, foi apontado o diretório de deploy da minha aplicação dentro do meu servidor de aplicação.</p>
<p>Na segunda linha, em <strong>Root URL</strong>, foi apontado o caminho da URL para abertura da aplicação em meu navegador de internet.</p>
<p>Na terceira linha, em <strong>ContextRoot</strong>, apontamos o nome da nossa aplicação.</p>
<p>Na quarta e ultima linha, em <strong>Output folder</strong>, apontamos o diretório de onde deve ser exportados os arquivos quando compilados. Para esse tutorial, foi apontado diretamente o diretório de minha aplicação dentro do meu servidor Tomcat.</p>
<p>Como resultado, o Flash Builder irá criar e disponibilizar no workspace um projeto da seguinte forma:</p>
<p><a href="http://www.horochovec.com.br/blog/wp-content/uploads/2010/03/13.jpg"><img src="http://www.horochovec.com.br/blog/wp-content/uploads/2010/03/13.jpg" alt="" title="" width="495" height="305" class="aligncenter size-full wp-image-312" /></a></p>
<p>É muito importante fazer a conferência de uma configuração gerada automaticamente pelo Flash Builder em cima dos parametros informados na segunda etapa da criação do projeto. No menu &#8216;Project&#8217; vá na opção &#8216;Properties&#8217; e confira as propriedades de acordo com a imagem abaixo:</p>
<p><a href="http://www.horochovec.com.br/blog/wp-content/uploads/2010/03/14.jpg"><img src="http://www.horochovec.com.br/blog/wp-content/uploads/2010/03/14.jpg" alt="" title="14" width="540" height="433" class="aligncenter size-full wp-image-314" /></a></p>
<p>Após conferir essas informações, podemos iniciar o desenvolvimento do projeto no Flex.</p>
<p>Primeiramente, iremos criar o bean que será enviado para o Java e vice-versa. Esse bean será um espelho do bean criado no Java, conforme abaixo:</p>

<div class="wp_codebox_msgheader"><span class="right"><sup><a href="http://www.ericbess.com/ericblog/2008/03/03/wp-codebox/#examples" target="_blank" title="WP-CodeBox HowTo?"><span style="color: #99cc00">?</span></a></sup></span><span class="left2">Download <a href="http://www.horochovec.com.br/blog/wp-content/plugins/wp-codebox/wp-codebox.php?p=273&amp;download=Contato.as">Contato.as</a></span><div class="codebox_clear"></div></div><div class="wp_codebox"><table><tr id="p27335"><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
</pre></td><td class="code" id="p273code35"><pre class="actionscript" style="font-family:monospace;">package br.<span style="color: #006600;">com</span>.<span style="color: #006600;">horochovec</span>.<span style="color: #006600;">model</span>
<span style="color: #66cc66;">&#123;</span>
	<span style="color: #66cc66;">&#91;</span>RemoteClass<span style="color: #66cc66;">&#40;</span>alias=<span style="color: #ff0000;">&quot;br.com.horochovec.model.Contato&quot;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#93;</span>
	<span style="color: #66cc66;">&#91;</span>Bindable<span style="color: #66cc66;">&#93;</span>
	<span style="color: #0066CC;">public</span> <span style="color: #000000; font-weight: bold;">class</span> Contato
	<span style="color: #66cc66;">&#123;</span>
&nbsp;
		<span style="color: #0066CC;">public</span> <span style="color: #000000; font-weight: bold;">var</span> nome 	: <span style="color: #0066CC;">String</span>;
&nbsp;
		<span style="color: #0066CC;">public</span> <span style="color: #000000; font-weight: bold;">var</span> email 	: <span style="color: #0066CC;">String</span>;
&nbsp;
		<span style="color: #0066CC;">public</span> <span style="color: #000000; font-weight: bold;">function</span> Contato<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>
		<span style="color: #66cc66;">&#123;</span>
		<span style="color: #66cc66;">&#125;</span>
&nbsp;
	<span style="color: #66cc66;">&#125;</span>
<span style="color: #66cc66;">&#125;</span></pre></td></tr></table></div>

<p>Em seguida, irei criar uma tela no Flash Builder que contenha dois campos text input para preencher as informações do nome e email do contato, e também um grid para conter a lista dos contatos que serão adicionados no Java e retornarão ao Flex através do BlazeDS.</p>
<p><a href="http://www.horochovec.com.br/blog/wp-content/uploads/2010/03/15.jpg"><img src="http://www.horochovec.com.br/blog/wp-content/uploads/2010/03/15.jpg" alt="" title="15" width="453" height="502" class="aligncenter size-full wp-image-317" /></a></p>
<p>Segue sua implementação</p>

<div class="wp_codebox_msgheader"><span class="right"><sup><a href="http://www.ericbess.com/ericblog/2008/03/03/wp-codebox/#examples" target="_blank" title="WP-CodeBox HowTo?"><span style="color: #99cc00">?</span></a></sup></span><span class="left2">Download <a href="http://www.horochovec.com.br/blog/wp-content/plugins/wp-codebox/wp-codebox.php?p=273&amp;download=FlexDuck.mxml">FlexDuck.mxml</a></span><div class="codebox_clear"></div></div><div class="wp_codebox"><table><tr id="p27336"><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
</pre></td><td class="code" id="p273code36"><pre class="actionscript" style="font-family:monospace;"><span style="color: #66cc66;">&lt;</span>?<span style="color: #0066CC;">xml</span> <span style="color: #0066CC;">version</span>=<span style="color: #ff0000;">&quot;1.0&quot;</span> encoding=<span style="color: #ff0000;">&quot;utf-8&quot;</span>?<span style="color: #66cc66;">&gt;</span>
<span style="color: #66cc66;">&lt;</span>s:Application xmlns:fx=<span style="color: #ff0000;">&quot;http://ns.adobe.com/mxml/2009&quot;</span> 
			   xmlns:s=<span style="color: #ff0000;">&quot;library://ns.adobe.com/flex/spark&quot;</span> 
			   xmlns:mx=<span style="color: #ff0000;">&quot;library://ns.adobe.com/flex/mx&quot;</span><span style="color: #66cc66;">&gt;</span>
	<span style="color: #66cc66;">&lt;</span>fx:Declarations<span style="color: #66cc66;">&gt;</span>
		<span style="color: #66cc66;">&lt;!</span>-- Place non-visual elements <span style="color: #66cc66;">&#40;</span><span style="color: #0066CC;">e</span>.<span style="color: #006600;">g</span>., services, value objects<span style="color: #66cc66;">&#41;</span> here --<span style="color: #66cc66;">&gt;</span>
	<span style="color: #66cc66;">&lt;/</span>fx:Declarations<span style="color: #66cc66;">&gt;</span>
	<span style="color: #66cc66;">&lt;</span>s:Panel <span style="color: #0066CC;">width</span>=<span style="color: #ff0000;">&quot;400&quot;</span> <span style="color: #0066CC;">height</span>=<span style="color: #ff0000;">&quot;137&quot;</span> title=<span style="color: #ff0000;">&quot;Cadastro&quot;</span> <span style="color: #0066CC;">left</span>=<span style="color: #ff0000;">&quot;10&quot;</span> top=<span style="color: #ff0000;">&quot;10&quot;</span><span style="color: #66cc66;">&gt;</span>
		<span style="color: #66cc66;">&lt;</span>s:<span style="color: #0066CC;">Button</span> x=<span style="color: #ff0000;">&quot;55&quot;</span> label=<span style="color: #ff0000;">&quot;Cadastrar&quot;</span> bottom=<span style="color: #ff0000;">&quot;10&quot;</span> id=<span style="color: #ff0000;">&quot;btnCadastro&quot;</span><span style="color: #66cc66;">/&gt;</span>
		<span style="color: #66cc66;">&lt;</span>s:Label x=<span style="color: #ff0000;">&quot;10&quot;</span> y=<span style="color: #ff0000;">&quot;16&quot;</span> <span style="color: #0066CC;">text</span>=<span style="color: #ff0000;">&quot;Nome:&quot;</span><span style="color: #66cc66;">/&gt;</span>
		<span style="color: #66cc66;">&lt;</span>s:Label x=<span style="color: #ff0000;">&quot;13&quot;</span> y=<span style="color: #ff0000;">&quot;50&quot;</span> <span style="color: #0066CC;">text</span>=<span style="color: #ff0000;">&quot;Email:&quot;</span><span style="color: #66cc66;">/&gt;</span>
		<span style="color: #66cc66;">&lt;</span>s:TextInput x=<span style="color: #ff0000;">&quot;56&quot;</span> y=<span style="color: #ff0000;">&quot;10&quot;</span> <span style="color: #0066CC;">width</span>=<span style="color: #ff0000;">&quot;332&quot;</span> id=<span style="color: #ff0000;">&quot;nome&quot;</span><span style="color: #66cc66;">/&gt;</span>
		<span style="color: #66cc66;">&lt;</span>s:TextInput x=<span style="color: #ff0000;">&quot;56&quot;</span> y=<span style="color: #ff0000;">&quot;44&quot;</span> <span style="color: #0066CC;">width</span>=<span style="color: #ff0000;">&quot;332&quot;</span> id=<span style="color: #ff0000;">&quot;email&quot;</span><span style="color: #66cc66;">/&gt;</span>
	<span style="color: #66cc66;">&lt;/</span>s:Panel<span style="color: #66cc66;">&gt;</span>
	<span style="color: #66cc66;">&lt;</span>s:Panel x=<span style="color: #ff0000;">&quot;12&quot;</span> y=<span style="color: #ff0000;">&quot;166&quot;</span> <span style="color: #0066CC;">width</span>=<span style="color: #ff0000;">&quot;400&quot;</span> <span style="color: #0066CC;">height</span>=<span style="color: #ff0000;">&quot;227&quot;</span> title=<span style="color: #ff0000;">&quot;Pesquisa&quot;</span> <span style="color: #0066CC;">left</span>=<span style="color: #ff0000;">&quot;10&quot;</span><span style="color: #66cc66;">&gt;</span>
		<span style="color: #66cc66;">&lt;</span>mx:DataGrid x=<span style="color: #ff0000;">&quot;10&quot;</span> y=<span style="color: #ff0000;">&quot;10&quot;</span> bottom=<span style="color: #ff0000;">&quot;30&quot;</span> <span style="color: #0066CC;">left</span>=<span style="color: #ff0000;">&quot;5&quot;</span> <span style="color: #0066CC;">right</span>=<span style="color: #ff0000;">&quot;5&quot;</span> top=<span style="color: #ff0000;">&quot;5&quot;</span> id=<span style="color: #ff0000;">&quot;grid&quot;</span> dataProvider=<span style="color: #ff0000;">&quot;{this.listContato}&quot;</span><span style="color: #66cc66;">&gt;</span>
			<span style="color: #66cc66;">&lt;</span>mx:columns<span style="color: #66cc66;">&gt;</span>
				<span style="color: #66cc66;">&lt;</span>mx:DataGridColumn headerText=<span style="color: #ff0000;">&quot;Nome&quot;</span> dataField=<span style="color: #ff0000;">&quot;nome&quot;</span><span style="color: #66cc66;">/&gt;</span>
				<span style="color: #66cc66;">&lt;</span>mx:DataGridColumn headerText=<span style="color: #ff0000;">&quot;Email&quot;</span> dataField=<span style="color: #ff0000;">&quot;email&quot;</span><span style="color: #66cc66;">/&gt;</span>
			<span style="color: #66cc66;">&lt;/</span>mx:columns<span style="color: #66cc66;">&gt;</span>
		<span style="color: #66cc66;">&lt;/</span>mx:DataGrid<span style="color: #66cc66;">&gt;</span>
		<span style="color: #66cc66;">&lt;</span>s:<span style="color: #0066CC;">Button</span> x=<span style="color: #ff0000;">&quot;-1&quot;</span> y=<span style="color: #ff0000;">&quot;163&quot;</span> label=<span style="color: #ff0000;">&quot;Listar todos&quot;</span> <span style="color: #0066CC;">left</span>=<span style="color: #ff0000;">&quot;5&quot;</span> bottom=<span style="color: #ff0000;">&quot;5&quot;</span><span style="color: #66cc66;">/&gt;</span>
	<span style="color: #66cc66;">&lt;/</span>s:Panel<span style="color: #66cc66;">&gt;</span>
<span style="color: #66cc66;">&lt;/</span>s:Application<span style="color: #66cc66;">&gt;</span></pre></td></tr></table></div>

<p>Após a construção da tela, iremos criar o serviço remoto que será responsável pela comunicação com o Java. Conforme trecho abaixo, criaremos um RemoteObject e dois métodos para serem executados pela aplicação. Definiremos também os métodos que devem ser disparados quando ocorrerem os retornos, tanto de sucesso quanto de falha na comunicação.</p>

<div class="wp_codebox_msgheader"><span class="right"><sup><a href="http://www.ericbess.com/ericblog/2008/03/03/wp-codebox/#examples" target="_blank" title="WP-CodeBox HowTo?"><span style="color: #99cc00">?</span></a></sup></span><span class="left2">Download <a href="http://www.horochovec.com.br/blog/wp-content/plugins/wp-codebox/wp-codebox.php?p=273&amp;download=FlexDuck.mxml">FlexDuck.mxml</a></span><div class="codebox_clear"></div></div><div class="wp_codebox"><table><tr id="p27337"><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
</pre></td><td class="code" id="p273code37"><pre class="actionscript" style="font-family:monospace;"><span style="color: #66cc66;">&lt;</span>fx:Declarations<span style="color: #66cc66;">&gt;</span>
	<span style="color: #66cc66;">&lt;</span>s:RemoteObject id=<span style="color: #ff0000;">&quot;remoteObject&quot;</span> 
					destination=<span style="color: #ff0000;">&quot;ContatoService&quot;</span> 
					fault=<span style="color: #ff0000;">&quot;onFault(event);&quot;</span><span style="color: #66cc66;">&gt;</span>
		<span style="color: #66cc66;">&lt;</span>s:method <span style="color: #0066CC;">name</span>=<span style="color: #ff0000;">&quot;addContato&quot;</span> 
				  result=<span style="color: #ff0000;">&quot;onResultAddContatoHandler(event);&quot;</span>
				  fault=<span style="color: #ff0000;">&quot;onFault(event);&quot;</span> <span style="color: #66cc66;">/&gt;</span>
		<span style="color: #66cc66;">&lt;</span>s:method <span style="color: #0066CC;">name</span>=<span style="color: #ff0000;">&quot;getListContato&quot;</span> 
				  result=<span style="color: #ff0000;">&quot;onResultGetListContatoHandler(event);&quot;</span>
				  fault=<span style="color: #ff0000;">&quot;onFault(event);&quot;</span> <span style="color: #66cc66;">/&gt;</span>
	<span style="color: #66cc66;">&lt;/</span>s:RemoteObject<span style="color: #66cc66;">&gt;</span>
<span style="color: #66cc66;">&lt;/</span>fx:Declarations<span style="color: #66cc66;">&gt;</span></pre></td></tr></table></div>

<p>Feito isso, faremos a implementação dos métodos a cima informados para resultados do RemoteObject.</p>

<div class="wp_codebox_msgheader"><span class="right"><sup><a href="http://www.ericbess.com/ericblog/2008/03/03/wp-codebox/#examples" target="_blank" title="WP-CodeBox HowTo?"><span style="color: #99cc00">?</span></a></sup></span><span class="left2">Download <a href="http://www.horochovec.com.br/blog/wp-content/plugins/wp-codebox/wp-codebox.php?p=273&amp;download=FlexDuck.mxml">FlexDuck.mxml</a></span><div class="codebox_clear"></div></div><div class="wp_codebox"><table><tr id="p27338"><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
</pre></td><td class="code" id="p273code38"><pre class="actionscript" style="font-family:monospace;"><span style="color: #66cc66;">&lt;</span>fx:Script<span style="color: #66cc66;">&gt;</span>
<span style="color: #66cc66;">&lt;!</span><span style="color: #66cc66;">&#91;</span>CDATA<span style="color: #66cc66;">&#91;</span>
<span style="color: #0066CC;">import</span> br.<span style="color: #006600;">com</span>.<span style="color: #006600;">horochovec</span>.<span style="color: #006600;">model</span>.<span style="color: #006600;">Contato</span>;
&nbsp;
<span style="color: #0066CC;">import</span> mx.<span style="color: #006600;">collections</span>.<span style="color: #006600;">ArrayList</span>;
<span style="color: #0066CC;">import</span> mx.<span style="color: #006600;">controls</span>.<span style="color: #006600;">Alert</span>;
<span style="color: #0066CC;">import</span> mx.<span style="color: #006600;">rpc</span>.<span style="color: #006600;">events</span>.<span style="color: #006600;">FaultEvent</span>;
<span style="color: #0066CC;">import</span> mx.<span style="color: #006600;">rpc</span>.<span style="color: #006600;">events</span>.<span style="color: #006600;">ResultEvent</span>;
&nbsp;
<span style="color: #66cc66;">&#91;</span>Bindable<span style="color: #66cc66;">&#93;</span>
<span style="color: #0066CC;">public</span> <span style="color: #000000; font-weight: bold;">var</span> contato : Contato 		= <span style="color: #000000; font-weight: bold;">new</span> Contato<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>;
&nbsp;
<span style="color: #66cc66;">&#91;</span>Bindable<span style="color: #66cc66;">&#93;</span>
<span style="color: #0066CC;">public</span> <span style="color: #000000; font-weight: bold;">var</span> listContato : ArrayList 	= <span style="color: #000000; font-weight: bold;">new</span> ArrayList<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>;
&nbsp;
&nbsp;
<span style="color: #808080; font-style: italic;">/**
 * Metodo para falhas na comunicação
 */</span>				
protected <span style="color: #000000; font-weight: bold;">function</span> onFault<span style="color: #66cc66;">&#40;</span>event:FaultEvent<span style="color: #66cc66;">&#41;</span> : <span style="color: #0066CC;">void</span>
<span style="color: #66cc66;">&#123;</span>
	Alert.<span style="color: #0066CC;">show</span><span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">'Erro'</span><span style="color: #66cc66;">&#41;</span>;
<span style="color: #66cc66;">&#125;</span>
&nbsp;
<span style="color: #808080; font-style: italic;">/**
 * Funcao para retorno de cadastro do Contato
 */</span>
protected <span style="color: #000000; font-weight: bold;">function</span> onResultAddContatoHandler<span style="color: #66cc66;">&#40;</span>event:ResultEvent<span style="color: #66cc66;">&#41;</span> : <span style="color: #0066CC;">void</span> 
<span style="color: #66cc66;">&#123;</span>
	Alert.<span style="color: #0066CC;">show</span><span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">'Adicionado'</span><span style="color: #66cc66;">&#41;</span>;
<span style="color: #66cc66;">&#125;</span>
&nbsp;
<span style="color: #808080; font-style: italic;">/**
 * Funcao para retorno da lista de contatos
 */</span>
protected <span style="color: #000000; font-weight: bold;">function</span> onResultGetListContatoHandler<span style="color: #66cc66;">&#40;</span>event:ResultEvent<span style="color: #66cc66;">&#41;</span> : <span style="color: #0066CC;">void</span>
<span style="color: #66cc66;">&#123;</span>
	<span style="color: #0066CC;">this</span>.<span style="color: #006600;">listContato</span> = event.<span style="color: #006600;">result</span> as ArrayList;
<span style="color: #66cc66;">&#125;</span>
&nbsp;
<span style="color: #66cc66;">&#93;</span><span style="color: #66cc66;">&#93;</span><span style="color: #66cc66;">&gt;</span>
<span style="color: #66cc66;">&lt;/</span>fx:Script<span style="color: #66cc66;">&gt;</span></pre></td></tr></table></div>

<p>Agora, iremos implementar no botão do painel de cadastro e ao botão no painel de listagem de informações, o evento de <em>click</em> para que seja enviado ao java o bean para cadastro e solicitado ao java a lista de contatos.</p>

<div class="wp_codebox_msgheader"><span class="right"><sup><a href="http://www.ericbess.com/ericblog/2008/03/03/wp-codebox/#examples" target="_blank" title="WP-CodeBox HowTo?"><span style="color: #99cc00">?</span></a></sup></span><span class="left2">Download <a href="http://www.horochovec.com.br/blog/wp-content/plugins/wp-codebox/wp-codebox.php?p=273&amp;download=FlexDuck.mxml">FlexDuck.mxml</a></span><div class="codebox_clear"></div></div><div class="wp_codebox"><table><tr id="p27339"><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
</pre></td><td class="code" id="p273code39"><pre class="actionscript" style="font-family:monospace;"><span style="color: #66cc66;">&lt;</span>s:Panel <span style="color: #0066CC;">width</span>=<span style="color: #ff0000;">&quot;400&quot;</span> <span style="color: #0066CC;">height</span>=<span style="color: #ff0000;">&quot;137&quot;</span> title=<span style="color: #ff0000;">&quot;Cadastro&quot;</span> <span style="color: #0066CC;">left</span>=<span style="color: #ff0000;">&quot;10&quot;</span> top=<span style="color: #ff0000;">&quot;10&quot;</span><span style="color: #66cc66;">&gt;</span>
	<span style="color: #66cc66;">&lt;</span>s:<span style="color: #0066CC;">Button</span> x=<span style="color: #ff0000;">&quot;55&quot;</span> label=<span style="color: #ff0000;">&quot;Cadastrar&quot;</span> bottom=<span style="color: #ff0000;">&quot;10&quot;</span> id=<span style="color: #ff0000;">&quot;btnCadastro&quot;</span> click=<span style="color: #ff0000;">&quot;btnCadastroClickHandler(event)&quot;</span><span style="color: #66cc66;">/&gt;</span>
	<span style="color: #66cc66;">&lt;</span>s:Label x=<span style="color: #ff0000;">&quot;10&quot;</span> y=<span style="color: #ff0000;">&quot;16&quot;</span> <span style="color: #0066CC;">text</span>=<span style="color: #ff0000;">&quot;Nome:&quot;</span><span style="color: #66cc66;">/&gt;</span>
	<span style="color: #66cc66;">&lt;</span>s:Label x=<span style="color: #ff0000;">&quot;13&quot;</span> y=<span style="color: #ff0000;">&quot;50&quot;</span> <span style="color: #0066CC;">text</span>=<span style="color: #ff0000;">&quot;Email:&quot;</span><span style="color: #66cc66;">/&gt;</span>
	<span style="color: #66cc66;">&lt;</span>s:TextInput x=<span style="color: #ff0000;">&quot;56&quot;</span> y=<span style="color: #ff0000;">&quot;10&quot;</span> <span style="color: #0066CC;">width</span>=<span style="color: #ff0000;">&quot;332&quot;</span> id=<span style="color: #ff0000;">&quot;nome&quot;</span><span style="color: #66cc66;">/&gt;</span>
	<span style="color: #66cc66;">&lt;</span>s:TextInput x=<span style="color: #ff0000;">&quot;56&quot;</span> y=<span style="color: #ff0000;">&quot;44&quot;</span> <span style="color: #0066CC;">width</span>=<span style="color: #ff0000;">&quot;332&quot;</span> id=<span style="color: #ff0000;">&quot;email&quot;</span><span style="color: #66cc66;">/&gt;</span>
<span style="color: #66cc66;">&lt;/</span>s:Panel<span style="color: #66cc66;">&gt;</span>
<span style="color: #66cc66;">&lt;</span>s:Panel x=<span style="color: #ff0000;">&quot;12&quot;</span> y=<span style="color: #ff0000;">&quot;166&quot;</span> <span style="color: #0066CC;">width</span>=<span style="color: #ff0000;">&quot;400&quot;</span> <span style="color: #0066CC;">height</span>=<span style="color: #ff0000;">&quot;227&quot;</span> title=<span style="color: #ff0000;">&quot;Pesquisa&quot;</span> <span style="color: #0066CC;">left</span>=<span style="color: #ff0000;">&quot;10&quot;</span><span style="color: #66cc66;">&gt;</span>
	<span style="color: #66cc66;">&lt;</span>mx:DataGrid x=<span style="color: #ff0000;">&quot;10&quot;</span> y=<span style="color: #ff0000;">&quot;10&quot;</span> bottom=<span style="color: #ff0000;">&quot;30&quot;</span> <span style="color: #0066CC;">left</span>=<span style="color: #ff0000;">&quot;5&quot;</span> <span style="color: #0066CC;">right</span>=<span style="color: #ff0000;">&quot;5&quot;</span> top=<span style="color: #ff0000;">&quot;5&quot;</span> id=<span style="color: #ff0000;">&quot;grid&quot;</span> dataProvider=<span style="color: #ff0000;">&quot;{this.listContato}&quot;</span><span style="color: #66cc66;">&gt;</span>
		<span style="color: #66cc66;">&lt;</span>mx:columns<span style="color: #66cc66;">&gt;</span>
			<span style="color: #66cc66;">&lt;</span>mx:DataGridColumn headerText=<span style="color: #ff0000;">&quot;Nome&quot;</span> dataField=<span style="color: #ff0000;">&quot;nome&quot;</span><span style="color: #66cc66;">/&gt;</span>
			<span style="color: #66cc66;">&lt;</span>mx:DataGridColumn headerText=<span style="color: #ff0000;">&quot;Email&quot;</span> dataField=<span style="color: #ff0000;">&quot;email&quot;</span><span style="color: #66cc66;">/&gt;</span>
		<span style="color: #66cc66;">&lt;/</span>mx:columns<span style="color: #66cc66;">&gt;</span>
	<span style="color: #66cc66;">&lt;/</span>mx:DataGrid<span style="color: #66cc66;">&gt;</span>
	<span style="color: #66cc66;">&lt;</span>s:<span style="color: #0066CC;">Button</span> x=<span style="color: #ff0000;">&quot;-1&quot;</span> y=<span style="color: #ff0000;">&quot;163&quot;</span> label=<span style="color: #ff0000;">&quot;Listar todos&quot;</span> <span style="color: #0066CC;">left</span>=<span style="color: #ff0000;">&quot;5&quot;</span> bottom=<span style="color: #ff0000;">&quot;5&quot;</span> id=<span style="color: #ff0000;">&quot;btnListar&quot;</span> click=<span style="color: #ff0000;">&quot;btnListarClickHandler(event)&quot;</span><span style="color: #66cc66;">/&gt;</span>
<span style="color: #66cc66;">&lt;/</span>s:Panel<span style="color: #66cc66;">&gt;</span></pre></td></tr></table></div>

<p>Com os eventos de click de cada botão implementados, falta apenas fazer a implementação de seus métodos. Para isso vamos adicionar ao bloco <em>fx:script</em> o seguinte código:</p>

<div class="wp_codebox_msgheader"><span class="right"><sup><a href="http://www.ericbess.com/ericblog/2008/03/03/wp-codebox/#examples" target="_blank" title="WP-CodeBox HowTo?"><span style="color: #99cc00">?</span></a></sup></span><span class="left2">Download <a href="http://www.horochovec.com.br/blog/wp-content/plugins/wp-codebox/wp-codebox.php?p=273&amp;download=FlexDuck.mxml">FlexDuck.mxml</a></span><div class="codebox_clear"></div></div><div class="wp_codebox"><table><tr id="p27340"><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
</pre></td><td class="code" id="p273code40"><pre class="actionscript" style="font-family:monospace;"><span style="color: #808080; font-style: italic;">/**
 * Evento de click do botão de cadastro
 */</span>
protected <span style="color: #000000; font-weight: bold;">function</span> btnCadastroClickHandler<span style="color: #66cc66;">&#40;</span>event:MouseEvent<span style="color: #66cc66;">&#41;</span>:<span style="color: #0066CC;">void</span>
<span style="color: #66cc66;">&#123;</span>
	<span style="color: #0066CC;">this</span>.<span style="color: #006600;">remoteObject</span>.<span style="color: #006600;">addContato</span><span style="color: #66cc66;">&#40;</span><span style="color: #0066CC;">this</span>.<span style="color: #006600;">contato</span><span style="color: #66cc66;">&#41;</span>;
<span style="color: #66cc66;">&#125;</span>
&nbsp;
<span style="color: #808080; font-style: italic;">/**
 * Evento de click do botão de pesquisa
 */</span>
protected <span style="color: #000000; font-weight: bold;">function</span> btnListarClickHandler<span style="color: #66cc66;">&#40;</span>event:MouseEvent<span style="color: #66cc66;">&#41;</span>:<span style="color: #0066CC;">void</span>
<span style="color: #66cc66;">&#123;</span>
	<span style="color: #0066CC;">this</span>.<span style="color: #006600;">remoteObject</span>.<span style="color: #006600;">getListContato</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>;
<span style="color: #66cc66;">&#125;</span></pre></td></tr></table></div>

<p>Para finalizar o código, irei adicionar o <em>Binding</em> entre os dois <em>TextInput</em> e o bean que será serializado para o Java:</p>

<div class="wp_codebox_msgheader"><span class="right"><sup><a href="http://www.ericbess.com/ericblog/2008/03/03/wp-codebox/#examples" target="_blank" title="WP-CodeBox HowTo?"><span style="color: #99cc00">?</span></a></sup></span><span class="left2">Download <a href="http://www.horochovec.com.br/blog/wp-content/plugins/wp-codebox/wp-codebox.php?p=273&amp;download=FlexDuck.mxml">FlexDuck.mxml</a></span><div class="codebox_clear"></div></div><div class="wp_codebox"><table><tr id="p27341"><td class="line_numbers"><pre>1
2
</pre></td><td class="code" id="p273code41"><pre class="actionscript" style="font-family:monospace;"><span style="color: #66cc66;">&lt;</span>fx:Binding source=<span style="color: #ff0000;">&quot;nome.text&quot;</span> destination=<span style="color: #ff0000;">&quot;contato.nome&quot;</span> twoWay=<span style="color: #ff0000;">&quot;true&quot;</span><span style="color: #66cc66;">/&gt;</span>
<span style="color: #66cc66;">&lt;</span>fx:Binding source=<span style="color: #ff0000;">&quot;email.text&quot;</span> destination=<span style="color: #ff0000;">&quot;contato.email&quot;</span> twoWay=<span style="color: #ff0000;">&quot;true&quot;</span><span style="color: #66cc66;">/&gt;</span></pre></td></tr></table></div>

<p>Feito isso, pronto, nossa aplicação de teste está pronta para o uso final, como resultado, obtemos:</p>
<p><a href="http://www.horochovec.com.br/blog/wp-content/uploads/2010/03/16.jpg"><img src="http://www.horochovec.com.br/blog/wp-content/uploads/2010/03/16.jpg" alt="" title="16" width="419" height="410" class="aligncenter size-full wp-image-331" align="center" /></a></p>
<p><a href="http://www.horochovec.com.br/blog/wp-content/uploads/2010/03/17.jpg"><img src="http://www.horochovec.com.br/blog/wp-content/uploads/2010/03/17.jpg" alt="" title="17" width="419" height="410" class="aligncenter size-full wp-image-332" align="center" /></a></p>
<p><a href="http://www.horochovec.com.br/blog/wp-content/uploads/2010/03/18.jpg"><img src="http://www.horochovec.com.br/blog/wp-content/uploads/2010/03/18.jpg" alt="" title="18" width="419" height="410" class="aligncenter size-full wp-image-333" align="center" /></a></p>
<p>A implementação completa do Flex será:</p>

<div class="wp_codebox_msgheader"><span class="right"><sup><a href="http://www.ericbess.com/ericblog/2008/03/03/wp-codebox/#examples" target="_blank" title="WP-CodeBox HowTo?"><span style="color: #99cc00">?</span></a></sup></span><span class="left2">Download <a href="http://www.horochovec.com.br/blog/wp-content/plugins/wp-codebox/wp-codebox.php?p=273&amp;download=FlexDuck.mxml">FlexDuck.mxml</a></span><div class="codebox_clear"></div></div><div class="wp_codebox"><table><tr id="p27342"><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
</pre></td><td class="code" id="p273code42"><pre class="actionscript" style="font-family:monospace;"><span style="color: #66cc66;">&lt;</span>?<span style="color: #0066CC;">xml</span> <span style="color: #0066CC;">version</span>=<span style="color: #ff0000;">&quot;1.0&quot;</span> encoding=<span style="color: #ff0000;">&quot;utf-8&quot;</span>?<span style="color: #66cc66;">&gt;</span>
<span style="color: #66cc66;">&lt;</span>s:Application xmlns:fx=<span style="color: #ff0000;">&quot;http://ns.adobe.com/mxml/2009&quot;</span> 
			   xmlns:s=<span style="color: #ff0000;">&quot;library://ns.adobe.com/flex/spark&quot;</span> 
			   xmlns:mx=<span style="color: #ff0000;">&quot;library://ns.adobe.com/flex/mx&quot;</span><span style="color: #66cc66;">&gt;</span>
&nbsp;
	<span style="color: #66cc66;">&lt;</span>fx:Script<span style="color: #66cc66;">&gt;</span>
	<span style="color: #66cc66;">&lt;!</span><span style="color: #66cc66;">&#91;</span>CDATA<span style="color: #66cc66;">&#91;</span>
		<span style="color: #0066CC;">import</span> br.<span style="color: #006600;">com</span>.<span style="color: #006600;">horochovec</span>.<span style="color: #006600;">model</span>.<span style="color: #006600;">Contato</span>;
&nbsp;
		<span style="color: #0066CC;">import</span> mx.<span style="color: #006600;">collections</span>.<span style="color: #006600;">ArrayCollection</span>;
		<span style="color: #0066CC;">import</span> mx.<span style="color: #006600;">controls</span>.<span style="color: #006600;">Alert</span>;
		<span style="color: #0066CC;">import</span> mx.<span style="color: #006600;">rpc</span>.<span style="color: #006600;">events</span>.<span style="color: #006600;">FaultEvent</span>;
		<span style="color: #0066CC;">import</span> mx.<span style="color: #006600;">rpc</span>.<span style="color: #006600;">events</span>.<span style="color: #006600;">ResultEvent</span>;
&nbsp;
		<span style="color: #66cc66;">&#91;</span>Bindable<span style="color: #66cc66;">&#93;</span>
		<span style="color: #0066CC;">public</span> <span style="color: #000000; font-weight: bold;">var</span> contato : Contato 				= <span style="color: #000000; font-weight: bold;">new</span> Contato<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>;
&nbsp;
		<span style="color: #66cc66;">&#91;</span>Bindable<span style="color: #66cc66;">&#93;</span>
		<span style="color: #0066CC;">public</span> <span style="color: #000000; font-weight: bold;">var</span> listContato : ArrayCollection 	= <span style="color: #000000; font-weight: bold;">new</span> ArrayCollection<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>;
&nbsp;
&nbsp;
		<span style="color: #808080; font-style: italic;">/**
		 * Metodo para falhas na comunicação
		 */</span>				
		protected <span style="color: #000000; font-weight: bold;">function</span> onFault<span style="color: #66cc66;">&#40;</span>event:FaultEvent<span style="color: #66cc66;">&#41;</span> : <span style="color: #0066CC;">void</span>
		<span style="color: #66cc66;">&#123;</span>
			Alert.<span style="color: #0066CC;">show</span><span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">'Erro'</span><span style="color: #66cc66;">&#41;</span>;
		<span style="color: #66cc66;">&#125;</span>
&nbsp;
		<span style="color: #808080; font-style: italic;">/**
		 * Funcao para retorno de cadastro do Contato
		 */</span>
		protected <span style="color: #000000; font-weight: bold;">function</span> onResultAddContatoHandler<span style="color: #66cc66;">&#40;</span>event:ResultEvent<span style="color: #66cc66;">&#41;</span> : <span style="color: #0066CC;">void</span> 
		<span style="color: #66cc66;">&#123;</span>
			Alert.<span style="color: #0066CC;">show</span><span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">'Adicionado'</span><span style="color: #66cc66;">&#41;</span>;
		<span style="color: #66cc66;">&#125;</span>
&nbsp;
		<span style="color: #808080; font-style: italic;">/**
		 * Funcao para retorno da lista de contatos
		 */</span>
		protected <span style="color: #000000; font-weight: bold;">function</span> onResultGetListContatoHandler<span style="color: #66cc66;">&#40;</span>event:ResultEvent<span style="color: #66cc66;">&#41;</span> : <span style="color: #0066CC;">void</span>
		<span style="color: #66cc66;">&#123;</span>
			<span style="color: #0066CC;">this</span>.<span style="color: #006600;">listContato</span> = event.<span style="color: #006600;">result</span> as ArrayCollection;
		<span style="color: #66cc66;">&#125;</span>
&nbsp;
		<span style="color: #808080; font-style: italic;">/**
		 * Evento de click do botão de cadastro
		 */</span>
		protected <span style="color: #000000; font-weight: bold;">function</span> btnCadastroClickHandler<span style="color: #66cc66;">&#40;</span>event:MouseEvent<span style="color: #66cc66;">&#41;</span>:<span style="color: #0066CC;">void</span>
		<span style="color: #66cc66;">&#123;</span>
			<span style="color: #0066CC;">this</span>.<span style="color: #006600;">remoteObject</span>.<span style="color: #006600;">addContato</span><span style="color: #66cc66;">&#40;</span><span style="color: #0066CC;">this</span>.<span style="color: #006600;">contato</span><span style="color: #66cc66;">&#41;</span>;
		<span style="color: #66cc66;">&#125;</span>
&nbsp;
		<span style="color: #808080; font-style: italic;">/**
		 * Evento de click do botão de pesquisa
		 */</span>
		protected <span style="color: #000000; font-weight: bold;">function</span> btnListarClickHandler<span style="color: #66cc66;">&#40;</span>event:MouseEvent<span style="color: #66cc66;">&#41;</span>:<span style="color: #0066CC;">void</span>
		<span style="color: #66cc66;">&#123;</span>
			<span style="color: #0066CC;">this</span>.<span style="color: #006600;">remoteObject</span>.<span style="color: #006600;">getListContato</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>;
		<span style="color: #66cc66;">&#125;</span>
&nbsp;
	<span style="color: #66cc66;">&#93;</span><span style="color: #66cc66;">&#93;</span><span style="color: #66cc66;">&gt;</span>
	<span style="color: #66cc66;">&lt;/</span>fx:Script<span style="color: #66cc66;">&gt;</span>
&nbsp;
	<span style="color: #66cc66;">&lt;</span>fx:Binding source=<span style="color: #ff0000;">&quot;nome.text&quot;</span> 	destination=<span style="color: #ff0000;">&quot;contato.nome&quot;</span> 	twoWay=<span style="color: #ff0000;">&quot;true&quot;</span><span style="color: #66cc66;">/&gt;</span>
	<span style="color: #66cc66;">&lt;</span>fx:Binding source=<span style="color: #ff0000;">&quot;email.text&quot;</span> destination=<span style="color: #ff0000;">&quot;contato.email&quot;</span> twoWay=<span style="color: #ff0000;">&quot;true&quot;</span><span style="color: #66cc66;">/&gt;</span>
&nbsp;
	<span style="color: #66cc66;">&lt;</span>fx:Declarations<span style="color: #66cc66;">&gt;</span>
&nbsp;
		<span style="color: #66cc66;">&lt;</span>s:RemoteObject id=<span style="color: #ff0000;">&quot;remoteObject&quot;</span> 
						destination=<span style="color: #ff0000;">&quot;ContatoService&quot;</span> 
						fault=<span style="color: #ff0000;">&quot;onFault(event);&quot;</span><span style="color: #66cc66;">&gt;</span>
&nbsp;
			<span style="color: #66cc66;">&lt;</span>s:method <span style="color: #0066CC;">name</span>=<span style="color: #ff0000;">&quot;addContato&quot;</span> 
					  result=<span style="color: #ff0000;">&quot;onResultAddContatoHandler(event);&quot;</span>
					  fault=<span style="color: #ff0000;">&quot;onFault(event);&quot;</span> <span style="color: #66cc66;">/&gt;</span>
			<span style="color: #66cc66;">&lt;</span>s:method <span style="color: #0066CC;">name</span>=<span style="color: #ff0000;">&quot;getListContato&quot;</span> 
					  result=<span style="color: #ff0000;">&quot;onResultGetListContatoHandler(event);&quot;</span>
					  fault=<span style="color: #ff0000;">&quot;onFault(event);&quot;</span> <span style="color: #66cc66;">/&gt;</span>
&nbsp;
		<span style="color: #66cc66;">&lt;/</span>s:RemoteObject<span style="color: #66cc66;">&gt;</span>
&nbsp;
	<span style="color: #66cc66;">&lt;/</span>fx:Declarations<span style="color: #66cc66;">&gt;</span>
&nbsp;
&nbsp;
	<span style="color: #66cc66;">&lt;</span>s:Panel <span style="color: #0066CC;">width</span>=<span style="color: #ff0000;">&quot;400&quot;</span> <span style="color: #0066CC;">height</span>=<span style="color: #ff0000;">&quot;137&quot;</span> title=<span style="color: #ff0000;">&quot;Cadastro&quot;</span> <span style="color: #0066CC;">left</span>=<span style="color: #ff0000;">&quot;10&quot;</span> top=<span style="color: #ff0000;">&quot;10&quot;</span><span style="color: #66cc66;">&gt;</span>
		<span style="color: #66cc66;">&lt;</span>s:<span style="color: #0066CC;">Button</span> x=<span style="color: #ff0000;">&quot;55&quot;</span> label=<span style="color: #ff0000;">&quot;Cadastrar&quot;</span> bottom=<span style="color: #ff0000;">&quot;10&quot;</span> id=<span style="color: #ff0000;">&quot;btnCadastro&quot;</span> click=<span style="color: #ff0000;">&quot;btnCadastroClickHandler(event)&quot;</span><span style="color: #66cc66;">/&gt;</span>
		<span style="color: #66cc66;">&lt;</span>s:Label x=<span style="color: #ff0000;">&quot;10&quot;</span> y=<span style="color: #ff0000;">&quot;16&quot;</span> <span style="color: #0066CC;">text</span>=<span style="color: #ff0000;">&quot;Nome:&quot;</span><span style="color: #66cc66;">/&gt;</span>
		<span style="color: #66cc66;">&lt;</span>s:Label x=<span style="color: #ff0000;">&quot;13&quot;</span> y=<span style="color: #ff0000;">&quot;50&quot;</span> <span style="color: #0066CC;">text</span>=<span style="color: #ff0000;">&quot;Email:&quot;</span><span style="color: #66cc66;">/&gt;</span>
		<span style="color: #66cc66;">&lt;</span>s:TextInput x=<span style="color: #ff0000;">&quot;56&quot;</span> y=<span style="color: #ff0000;">&quot;10&quot;</span> <span style="color: #0066CC;">width</span>=<span style="color: #ff0000;">&quot;332&quot;</span> id=<span style="color: #ff0000;">&quot;nome&quot;</span><span style="color: #66cc66;">/&gt;</span>
		<span style="color: #66cc66;">&lt;</span>s:TextInput x=<span style="color: #ff0000;">&quot;56&quot;</span> y=<span style="color: #ff0000;">&quot;44&quot;</span> <span style="color: #0066CC;">width</span>=<span style="color: #ff0000;">&quot;332&quot;</span> id=<span style="color: #ff0000;">&quot;email&quot;</span><span style="color: #66cc66;">/&gt;</span>
	<span style="color: #66cc66;">&lt;/</span>s:Panel<span style="color: #66cc66;">&gt;</span>
	<span style="color: #66cc66;">&lt;</span>s:Panel x=<span style="color: #ff0000;">&quot;12&quot;</span> y=<span style="color: #ff0000;">&quot;166&quot;</span> <span style="color: #0066CC;">width</span>=<span style="color: #ff0000;">&quot;400&quot;</span> <span style="color: #0066CC;">height</span>=<span style="color: #ff0000;">&quot;227&quot;</span> title=<span style="color: #ff0000;">&quot;Pesquisa&quot;</span> <span style="color: #0066CC;">left</span>=<span style="color: #ff0000;">&quot;10&quot;</span><span style="color: #66cc66;">&gt;</span>
		<span style="color: #66cc66;">&lt;</span>mx:DataGrid x=<span style="color: #ff0000;">&quot;10&quot;</span> y=<span style="color: #ff0000;">&quot;10&quot;</span> bottom=<span style="color: #ff0000;">&quot;30&quot;</span> <span style="color: #0066CC;">left</span>=<span style="color: #ff0000;">&quot;5&quot;</span> <span style="color: #0066CC;">right</span>=<span style="color: #ff0000;">&quot;5&quot;</span> top=<span style="color: #ff0000;">&quot;5&quot;</span> id=<span style="color: #ff0000;">&quot;grid&quot;</span> dataProvider=<span style="color: #ff0000;">&quot;{this.listContato}&quot;</span><span style="color: #66cc66;">&gt;</span>
			<span style="color: #66cc66;">&lt;</span>mx:columns<span style="color: #66cc66;">&gt;</span>
				<span style="color: #66cc66;">&lt;</span>mx:DataGridColumn headerText=<span style="color: #ff0000;">&quot;Nome&quot;</span> dataField=<span style="color: #ff0000;">&quot;nome&quot;</span><span style="color: #66cc66;">/&gt;</span>
				<span style="color: #66cc66;">&lt;</span>mx:DataGridColumn headerText=<span style="color: #ff0000;">&quot;Email&quot;</span> dataField=<span style="color: #ff0000;">&quot;email&quot;</span><span style="color: #66cc66;">/&gt;</span>
			<span style="color: #66cc66;">&lt;/</span>mx:columns<span style="color: #66cc66;">&gt;</span>
		<span style="color: #66cc66;">&lt;/</span>mx:DataGrid<span style="color: #66cc66;">&gt;</span>
		<span style="color: #66cc66;">&lt;</span>s:<span style="color: #0066CC;">Button</span> x=<span style="color: #ff0000;">&quot;-1&quot;</span> y=<span style="color: #ff0000;">&quot;163&quot;</span> label=<span style="color: #ff0000;">&quot;Listar todos&quot;</span> <span style="color: #0066CC;">left</span>=<span style="color: #ff0000;">&quot;5&quot;</span> bottom=<span style="color: #ff0000;">&quot;5&quot;</span> id=<span style="color: #ff0000;">&quot;btnListar&quot;</span> click=<span style="color: #ff0000;">&quot;btnListarClickHandler(event)&quot;</span><span style="color: #66cc66;">/&gt;</span>
	<span style="color: #66cc66;">&lt;/</span>s:Panel<span style="color: #66cc66;">&gt;</span>
&nbsp;
<span style="color: #66cc66;">&lt;/</span>s:Application<span style="color: #66cc66;">&gt;</span></pre></td></tr></table></div>

<p>Você pode fazer o download do projeto <a href="http://www.horochovec.com.br/blog/FlexDuck20100323.zip" target="_new"/>aqui</a>.</p>
<p>Obrigado e um abraço a todos!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.horochovec.com.br/blog/2010/03/23/flash-builder-flex-sdk-4-java-blazeds-tutorial/feed/</wfw:commentRss>
		<slash:comments>13</slash:comments>
		</item>
		<item>
		<title>The Developers Conference 2009 &#8211; Florianópolis</title>
		<link>http://www.horochovec.com.br/blog/2009/11/12/the-developers-conference-2009-florianopolis/</link>
		<comments>http://www.horochovec.com.br/blog/2009/11/12/the-developers-conference-2009-florianopolis/#comments</comments>
		<pubDate>Thu, 12 Nov 2009 23:50:41 +0000</pubDate>
		<dc:creator>Stefan Horochovec</dc:creator>
				<category><![CDATA[Java]]></category>
		<category><![CDATA[Globalcode]]></category>
		<category><![CDATA[Java EE 6]]></category>
		<category><![CDATA[JSF]]></category>
		<category><![CDATA[Oracle]]></category>
		<category><![CDATA[Spring]]></category>
		<category><![CDATA[Sun]]></category>
		<category><![CDATA[TDC]]></category>

		<guid isPermaLink="false">http://www.horochovec.com.br/blog/?p=196</guid>
		<description><![CDATA[Ola pessoal, segunda (dia 9) tive a oportunidade de participar do TDC 2009 organizado pela Globalcode. Assistimos duas palestras do Rod Johnson &#8211; criador do Spring Framework, Mike Keith &#8211; Líder das especificações EJB 3 e JPA e trabalha na Oracle, Ed Burns &#8211; Líder do Expert Group JSF 2.0, e mais 4 Lightning Talks [...]]]></description>
			<content:encoded><![CDATA[<p>Ola pessoal, segunda (dia 9) tive a oportunidade de participar do TDC 2009 organizado pela Globalcode. Assistimos duas palestras do Rod Johnson &#8211; criador do Spring Framework, Mike Keith &#8211; Líder das especificações EJB 3 e JPA e trabalha na Oracle, Ed Burns &#8211; Líder do Expert Group JSF 2.0, e mais 4 Lightning Talks do pessoal da Globalcode e V.Office.</p>
<p><span id="more-196"></span><br />
Rod Johnson (Spring) abriu o evento com uma palestra sobre as tendências Java EE, aonde fez uma abordagem sobre como ele vê o desenvolvimento Java EE nos próximos 5 anos. Falou muito sobre cloud computing, data centers e sobre o quanto ainda aumentará a complexidade da arquitetura de uma aplicação Java EE e as responsabilidades do arquiteto Java por mais facilidades que irão surgir no Java EE 6.  Foi excelente e nos primeiros 30 minutos todos já puderam ter idéia sobre como seria o evento.</p>
<p>Em seguida, uma palestra excepcional. Mike Keith (Oracle) fez um overview sobre a nova versão do Java EE 6 que será lançada no dia 10 de dezembro.  Demonstrou (através de slides) boa parte do novo suporte de annotations para auxiliar a produtividade do desenvolvedor. Demonstrou também todo o trabalho que tiveram para evoluir e facilitar ainda mais o uso de EJBs e todas as inovações da nova JPA (agora com Criteria). Comentou bastante sobre a fragmentação de XMLs em JARs e sobre os namespaces dos XMLs para configuração de projetos.</p>
<p>Logo após a palestra do Mike, o pessoal da Globalcode aproveitou a onda dos EJBs e fez um Lightning Talk sobre EBJ 3.1. Comentando sobre o projeto deles: &#8220;EJB 3.1 Code Samples&#8221; que está hospedado hoje no Kenai e tem como objetivo ensinar a galera como utilizar o EJB 3.1 &#8211; Nota 10 pra equipe da Globalcode.</p>
<p>Logo após o almoço, tivemos mais um Lightning Talk, agora com o Vinicius Senger aonde ele fez uma abordagem muito divertida sobre o Arduino.</p>
<p>A tarde, teriamos uma palestra com Chris Schalk do Google, porem, por motivos de visto ele não pode permanecer no Brasil e Rod Johnson fez uma outra palestra, a palestra sem slides, que foi ótima. Ele sentou na frente de um notebook e se matou programando e explicando o Spring ROO para que você possa ter produtividade ao máximo em Java. O Spring ROO é um framework muito parecido com o Rails para o Ruby. Muito interessante. Nessa palestra ele também demonstrou diversas funcionalidades da Spring IDE.</p>
<p>Por padrão, a cada palestra dos gurus, uma intervenção com um Lightning Talk pelo pessoal da Globalcode ou V.Ofiice. Dessa vez a bola ficou com o pessoal da V.Office que demonstrou uma ótima solução para celulares e telefonia VoIP utilizando o Asterisk.</p>
<p>E a ultima palestra dos gurus, ficou para o Ed Burns (Sun). Ele fez uma abordagem completa do JSF 2.0. Teve alguns problemas com os exemplos dele mas no mais foi tranquilo. Confesso que não fiquei surpreso com absolutamente nada que ele demonstrou, mas o JSF também está evoluindo a largos passos.</p>
<p>E para finalizar o ciclo de palestras antes das perguntas aos gurus, o pessoal da Globalcode preparou mais um Lightning Talk com o Vinicius Nunes aonde foi feito uma abordagem do ScrumToys. Um projeto muito legal que está disponivel nos exemplos do Netbeans (parabens a iniciativa do projeto ao pessoal da Globalcode). O projeto é bastante simples mas demonstra o uso de EJBs e do JSF 2.0.</p>
<p>E para finalizar o dia com chave de ouro, um painel de perguntas aos palestrantes. Eu tive a oportunidade de fazer 2 perguntas (quem me conhece sabe que eu não deixaria essa oportunidade passar em branco). A primeira foi destinada ao Ed Burns para que fizesse um comparativo do JSF 2.0 entre o Adobe Flex (claro), Silverlight e JavaFX para desenvolvimento de RIAs. Ele respondeu que depende muito do que se quer da aplicação, por isso existe espaço para todas essas tecnologias no mercado. (PS: ele fez uma cara meio feia quando recebeu a pergunta).</p>
<p>E outra pergunta foi para o Rod Johnson sobre a entrevista dele no Mundo Java aonde ele não pode comparar Adobe Flex X JavaFX alegando não ter conhecimento a fundo do JavaFX (na epoca), então, aproveitei para perguntar se agora era possivel fazer esse comparativo. Ele deu muitas voltas e disse o que já tinha dito, que o Adobe Flex está a todo vapor, tem uma boa IDE e de fato, as outras tecnologias precisam se esforçar para alcança-lo e tomar um pouco do mercado que ele já adquiriu.</p>
<p>Não fiz perguntas direcionadas ao Mike devido a sua palestra ter sido tão boa, que realmente não vi necessidade de perguntar nada, apenas aguardar anciosamente a versão do Java EE 6 para download.</p>
<p>Nota do evento: Dez, simplesmente dez. Ótima organização, ótimos palestrantes, tanto internacionais como nacionais. Só resta parabenizar a Globalcode pela iniciativa do TDC. Apenas achei que tinha pouca gente para ouvir quem estava palestrando. Acredito que perto de 300 pessoas acompanharam o evento. Se tratando de Rod Johnson, Mike Keith e Ed Burns, eu particularmente esperava muito mais.</p>
<p>Abaixo, fotos do evento e da tietagem, é obvio. Não perderia a oportunidade de registrar minha presença ao lado dos palestrantes, que tiveram a maior paciencia do mundo em tirar fotos com todos que quiseram. E ainda ganhei um capitulo no novo livro que vai ser publicado no próximo ano do Ed Burns sobre JSF. <img src='http://www.horochovec.com.br/blog/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' /> </p>
<p>Ano que vem? Estarei lá com certeza!</p>
<p> </p>
<div id="attachment_197" class="wp-caption aligncenter" style="width: 310px"><img class="size-medium wp-image-197 " title="Painel de Perguntas" src="http://www.horochovec.com.br/blog/wp-content/uploads/2009/11/1-300x225.jpg" alt="Ed Burns, Rod Johnson e Mike Keith no Painel de Perguntas coordenado pela Yara (Globalcode)" width="300" height="225" /><p class="wp-caption-text">Ed Burns, Rod Johnson e Mike Keith no Painel de Perguntas coordenado pela Yara (Globalcode)</p></div>
<div class="mceTemp mceIEcenter">
<div id="attachment_202" class="wp-caption aligncenter" style="width: 310px"><img class="size-medium wp-image-202" title="3" src="http://www.horochovec.com.br/blog/wp-content/uploads/2009/11/3-300x225.jpg" alt="Mauri (IDS), Mike Keith (Oracle), Rod Johnson (Spring) e eu (IDS)" width="300" height="225" /><p class="wp-caption-text">Mauri (IDS), Mike Keith (Oracle), Rod Johnson (Spring) e eu (IDS)</p></div>
</div>
<div>
<div id="attachment_205" class="wp-caption aligncenter" style="width: 310px"><img class="size-medium wp-image-205" title="Marcos (Banco do Brasil), Mauri (IDS), Ed Burns (Sun) e eu (IDS)" src="http://www.horochovec.com.br/blog/wp-content/uploads/2009/11/22-300x225.jpg" alt="Marcos (Banco do Brasil), Mauri (IDS), Ed Burns (Sun) e eu (IDS)" width="300" height="225" /><p class="wp-caption-text">Marcos (Banco do Brasil), Mauri (IDS), Ed Burns (Sun) e eu (IDS)</p></div>
</div>
]]></content:encoded>
			<wfw:commentRss>http://www.horochovec.com.br/blog/2009/11/12/the-developers-conference-2009-florianopolis/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Curso de Adobe Flex em Dois Vizinhos</title>
		<link>http://www.horochovec.com.br/blog/2009/09/18/curso-de-adobe-flex-em-dois-vizinhos/</link>
		<comments>http://www.horochovec.com.br/blog/2009/09/18/curso-de-adobe-flex-em-dois-vizinhos/#comments</comments>
		<pubDate>Fri, 18 Sep 2009 04:20:21 +0000</pubDate>
		<dc:creator>Stefan Horochovec</dc:creator>
				<category><![CDATA[FlexDuck]]></category>
		<category><![CDATA[AIR]]></category>
		<category><![CDATA[Cursos]]></category>
		<category><![CDATA[Flex]]></category>
		<category><![CDATA[Java]]></category>

		<guid isPermaLink="false">http://www.horochovec.com.br/blog/?p=188</guid>
		<description><![CDATA[Ola Em mais uma parceria com o NTI Paraná e Sudotec, estaremos realizando um curso de 24 horas de Adobe Flex em Dois Vizinhos/PR. O curso tem duração de 24 horas. As aulas serão na Sudotec. O curso é para iniciantes e a linguagem que utilizaremos como back-end será o Java. Para mais informações, acesse [...]]]></description>
			<content:encoded><![CDATA[<p>Ola</p>
<p>Em mais uma parceria com o NTI Paraná e Sudotec, estaremos realizando um curso de 24 horas de Adobe Flex em Dois Vizinhos/PR.</p>
<p>O curso tem duração de 24 horas. As aulas serão na Sudotec. O curso é para iniciantes e a linguagem que utilizaremos como back-end será o Java.</p>
<p>Para mais informações, acesse o site do NTI Parana, clicando <a href="http://www.ntipr.org.br/" target="_new">aqui</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.horochovec.com.br/blog/2009/09/18/curso-de-adobe-flex-em-dois-vizinhos/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Flex + BlazeDS : como o BlazeDS sabe o que executar?</title>
		<link>http://www.horochovec.com.br/blog/2009/07/24/flex-blazeds-como-o-blazeds-sabe-o-que-executar/</link>
		<comments>http://www.horochovec.com.br/blog/2009/07/24/flex-blazeds-como-o-blazeds-sabe-o-que-executar/#comments</comments>
		<pubDate>Fri, 24 Jul 2009 03:55:15 +0000</pubDate>
		<dc:creator>Stefan Horochovec</dc:creator>
				<category><![CDATA[BlazeDS]]></category>
		<category><![CDATA[Flex]]></category>
		<category><![CDATA[Java]]></category>

		<guid isPermaLink="false">http://www.horochovec.com.br/blog/?p=134</guid>
		<description><![CDATA[Ola pessoal, Meu amigo Erko Bridee publicou recentemente em seu blog um artigo interessantissimo para quem não conhece a forma que o BlazeDS sabe o que executar. Para ler o artigo, clique aqui. Boa leitura!]]></description>
			<content:encoded><![CDATA[<p>Ola pessoal,</p>
<p>Meu amigo <a href="http://erkobridee.com/" target="_new">Erko Bridee</a> publicou recentemente em seu blog um artigo interessantissimo para quem não conhece a forma que o BlazeDS sabe o que executar. Para ler o artigo, clique <a href="http://erkobridee.com/2009/07/17/flex-blazeds-como-o-blazeds-sabe-o-que-executar/" target="_new">aqui</a>.</p>
<p>Boa leitura!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.horochovec.com.br/blog/2009/07/24/flex-blazeds-como-o-blazeds-sabe-o-que-executar/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Adobe Flex e Java</title>
		<link>http://www.horochovec.com.br/blog/2008/10/20/adobe-flex-e-java/</link>
		<comments>http://www.horochovec.com.br/blog/2008/10/20/adobe-flex-e-java/#comments</comments>
		<pubDate>Mon, 20 Oct 2008 23:56:51 +0000</pubDate>
		<dc:creator>Stefan Horochovec</dc:creator>
				<category><![CDATA[Flex]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[FlexBrasil]]></category>
		<category><![CDATA[Forum]]></category>
		<category><![CDATA[Spring]]></category>

		<guid isPermaLink="false">http://www.horochovec.com.br/blog/2008/10/20/adobe-flex-e-java/</guid>
		<description><![CDATA[Ola amigos, fazendo uma análise de post&#8217;s do Forum FlexBrasil, a linguagem de backend que mais tem post&#8217;s é o Java&#8230; será que o casamento é perfeito? Para mim, um mero programador, o casamento entre Java e Flex é a união estável no desenvolvimento web. Com algumas técnologias você pode até ficar, ter uns namoricos, [...]]]></description>
			<content:encoded><![CDATA[<p>Ola amigos, fazendo uma análise de post&#8217;s do Forum <a href="http://forum.flexbrasil.com.br/">FlexBrasil</a>, a linguagem de backend que mais tem post&#8217;s é o Java&#8230; será que o casamento é perfeito?</p>
<p><span id="more-11"></span></p>
<p>Para mim, um mero programador, o casamento entre Java e Flex é a união estável no desenvolvimento web. Com algumas técnologias você pode até ficar, ter uns namoricos, mas parece mesmo que Java e Flex foram feitos um para o outro.</p>
<p>A integração entre os dois é muito tranquila, tanto usando o Blaze quanto usando o Granite, e parece que isso virou moda mesmo entre o pessoal. A cada dia surgem mais e mais post&#8217;s no forum com o pessoal usando essa combinação que tudo leva a crer, é a combinação ideal para soluções robustas e realmente ricas em interface sem gambiarras usando Javascript.</p>
<p> Com certeza quem ler isso e gosta de Javascript vai cair em cima com criticas, etc.. mas convenhamos, não vejo como uma aplicação em Javascript com Ajax, pode competir com interfaces em Flex.</p>
<p> Um post que está sempre pegando fogo, e quem deu inicio foi Rodrigo Fraga com seu ótimo tutorial, mostrando a integração entre Flex, Java com a utilização do Spring Framework..</p>
<p>Segue o <a href="http://forum.flexbrasil.com.br/viewtopic.php?f=8&amp;t=46&amp;st=0&amp;sk=t&amp;sd=a">link</a>, acompanhem o Forum, contribuam e façam parte desta comunidade!</p>
<p>Abraços</p>
]]></content:encoded>
			<wfw:commentRss>http://www.horochovec.com.br/blog/2008/10/20/adobe-flex-e-java/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Java e as impressoras matriciais</title>
		<link>http://www.horochovec.com.br/blog/2008/03/27/java-e-as-impressoras-matriciais/</link>
		<comments>http://www.horochovec.com.br/blog/2008/03/27/java-e-as-impressoras-matriciais/#comments</comments>
		<pubDate>Fri, 28 Mar 2008 01:40:19 +0000</pubDate>
		<dc:creator>Stefan Horochovec</dc:creator>
				<category><![CDATA[Java]]></category>
		<category><![CDATA[Applet]]></category>
		<category><![CDATA[Biometria]]></category>
		<category><![CDATA[Impressora térmica]]></category>
		<category><![CDATA[Impressoras]]></category>
		<category><![CDATA[Matricial]]></category>

		<guid isPermaLink="false">http://www.horochovec.com.br/blog/?p=7</guid>
		<description><![CDATA[Ola pessoal, depois de dias e dias sem postar nada no blog, estou postando alguma coisa sobre Java dessa vez, especificamente sobre impressoras matriciais, aonde muitas pessoas, inclusive eu, já sofreram ou ainda sofrem, para fazer essa comunicação. Qualquer aplicação que você for fazer via web, seja ela em html, php, java, asp, .net (ugh!), [...]]]></description>
			<content:encoded><![CDATA[<p>Ola pessoal, depois de dias e dias sem postar nada no blog, estou postando alguma coisa sobre Java dessa vez, especificamente sobre impressoras matriciais, aonde muitas pessoas, inclusive eu, já sofreram ou ainda sofrem, para fazer essa comunicação.<span id="more-7"></span></p>
<p>Qualquer aplicação que você for fazer via web, seja ela em html, php, java, asp, .net (ugh!), que necessite fazer impressões é um problema.</p>
<p>Relatórios são um sofrimento para quem vem do <a target="_new" href="http://www.php.net">PHP</a> (como eu). Tem que suar para fazer a implementação da <a target="_new" href="http://www.fpdf.org/">FPDF</a> ou da <a target="_new" href="http://www.pdflib.com/products/pdflib-family/">PDFlib</a>, para geração de relatórios gráficos em PDF ou ainda tentar montar layouts via HTML que façam controle de páginas, cabeçalhos, rodapé, etc&#8230; ou seja, sofre mesmo.</p>
<p>Para quem está no Java (ufa!), pensa que vai se libertar disso tudo usando o <a target="_new" href="http://www.jaspersoft.com/">Jasper</a> com o <a target="_new" href="http://www.jasperforge.org/sf/projects/ireport">iReport</a>, que realmente ajuda MUITO na hora de gerar os relatórios, com opções de exportações, etc, realmente uma mão na roda, mas&#8230; Isso tudo ainda não está bom, existe a necessidade de impressão de documentos fiscais via web (Que ainda bem que vai acabar com a chegada nas NFe). E é ai que a coisa complica.</p>
<p>Pois é, usar as impressoras matriciais em um ambiente 100% web é um pouco complicado. Para que você possa imprimir em boa velocidade, é necessário enviar comandos em para impressora na sua linguagem, geralmente em padrão EPSON, de comandos para impressão em linhas e colunas, aonde voce atraves de caracteres <a target="_new" href="http://pt.wikipedia.org/wiki/ASCII">ASCII</a> define tipo de letra, fontes, avanço de papel, retorno, etc.</p>
<p>Há algum tempo eu tive essa necessidade de impressão de documentos fiscais. Depois de um pouco de pesquisas e troca de mensagens em foruns, optei por fazer a impressão através de um Applet.</p>
<p>O Applet em java, quando assinado pelo desenvolvedor e aceito pelo usuário (igual quando você aceita rodar o Applet do Banco do Brasil, por exemplo), pode acessar várias informações dentro do computador do usuário, inclusive esse tipo de periféricos. Dessa forma, é possivel que você acesse a impressora do usuário, ela estando conectada na maquina dele, ou ainda, ela estando conectada em alguma máquina da rede do usuário.</p>
<p>Depois desse teste de acesso, gastei um bom tempo criando uma classe que fizesse a leitura de um documento XML aonde qualquer aplicação que gerasse esse documento, e ativasse o applet para a leitura do mesmo, ele faria um parser, verificando as TAGs de mapeamento e de dados a serem impressos e o Applet enviaria os comandos para a impressora.</p>
<p>Depois disso funcionando no meu netbeans (na epoca eu ainda usava netbeans), eu tratei de descobrir como fazer a assinatura do Applet. Gerei minha chave e assinei o Applet usando o Jarsigner e pronto. Quando a aplicação chamou o Applet e passou o arquivo que ele deveria interpretar, a impressora foi ativada e a impressão começou.</p>
<p>Com o uso de applet&#8217;s, já foi possivel a criação de rotinas para impressão em impressoras matriciais, impressoras térmicas e leitores de biometria. O Applet é muito esquecido e um tanto quanto criticado quando você pensa em usá-lo, porém, apresenta resultados satisfatórios depois da implementação.</p>
<p>O próximo passo, é tentar fazer com que o Flex ative um applet! Mas como ando muito apurado, vou esperar essa situação ser obrigatória, dai eu penso em como fazer!</p>
<p>Abraços a todos!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.horochovec.com.br/blog/2008/03/27/java-e-as-impressoras-matriciais/feed/</wfw:commentRss>
		<slash:comments>14</slash:comments>
		</item>
		<item>
		<title>blog pessoal!</title>
		<link>http://www.horochovec.com.br/blog/2008/01/22/blog-pessoal/</link>
		<comments>http://www.horochovec.com.br/blog/2008/01/22/blog-pessoal/#comments</comments>
		<pubDate>Wed, 23 Jan 2008 01:05:18 +0000</pubDate>
		<dc:creator>Stefan Horochovec</dc:creator>
				<category><![CDATA[Geral]]></category>
		<category><![CDATA[Debian]]></category>
		<category><![CDATA[Flex]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[LTSP]]></category>

		<guid isPermaLink="false">http://www.horochovec.com.br/blog/?p=3</guid>
		<description><![CDATA[Ola amigos, Bem vindos ao meu blog pessoal!! Vou tentar usar esse espaço parar passar um pouco de minhas pesquisas atuais na area de Adobe Flex + Java, buscando sempre a melhor maneira de intrega-los e ter sucesso nas aplicações desenvolvidas. Pretendo falar também sobre o Forum Flex-Brasil, no qual, sou um dos administradores junto [...]]]></description>
			<content:encoded><![CDATA[<p>Ola amigos,</p>
<p>Bem vindos ao meu blog pessoal!! Vou tentar usar esse espaço parar passar um pouco de minhas pesquisas atuais na area de Adobe Flex + Java, buscando sempre a melhor maneira de intrega-los e ter sucesso nas aplicações desenvolvidas.</p>
<p>Pretendo falar também sobre o Forum <a target="_new" href="http://forum.flexbrasil.com.br">Flex-Brasil</a>, no qual, sou um dos administradores junto com meu amigo Rodrigo Fraga. Falar sobre topicos que achei importantes, topicos meus, sobre o proprio sistema do Forum, etc..</p>
<p>E na medida dos acontecimentos, falar um pouco sobre Linux e seus serviços, já que sou fã do sistema operacional e volte e meia eu fico fazendo umas instalações meio doidas testando novas coisas&#8230;</p>
<p>Sejam bem vindos  :D</p>
]]></content:encoded>
			<wfw:commentRss>http://www.horochovec.com.br/blog/2008/01/22/blog-pessoal/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
	</channel>
</rss>
