eis a grande questão... comecei semana passada a estudar o uso do Granite DS que me possibilita o uso do protocolo AMF3 para comunicação entre Client & Server...
* a problemática: legal, peguei os exemplos do Granite DS, os .war neles contidos, coloquei no Tomcat e funcionou... dai me veio a questão... como faço para usar isso em um projeto usando o Flex Builder?
* o que usei? segue o que usei nesse meu teste:
- Java 1.5
- Eclipse 3.2 + WTP 2.0 + Adobe Flex Builder Plugin
- Tomcat 5.5.20
- OC4J 10.1.3.20 (servidor de app da Oracle usado como servidor de teste de deploy do projeto)
- graniteds-pojo-0.4.0 (como base para o projeto server side)
* criando projeto para o server side da aplicação- criar um projeto no Eclipse Dynamic Web Project
- criei um diretório para o projeto com o nome
GranitePojoFlex- após criado o projeto no diretório de nome definido
- copiar os arquivos do graniteds-pojo-0.4.0 para o projeto
> web.xml, códigos, diretórios do WEB-INF
- criei um diretório no /WebContent para o projeto Client Side - Adobe Flex, com nome de
flex- defini nas propriedades do projeto, no item:
Web Project Settings, o Context Root para:
granitepojoflex* criando o projeto client side- criei o projeto no diretório
flex citado anteriormente
- o mxml do graniteds-pojo-0.4.0, copiei o conteúdo desse para o arquivo main.xml
- copiei o arquivo
/WEB-INF/flex/services-config.xml, para o raíz do projeto
- editei esse arquivo services-config.xml
de: <channels>
<channel-definition id="my-graniteamf" class="mx.messaging.channels.AMFChannel">
<endpoint
uri="http://{server.name}:{server.port}/{context.root}/graniteamf/amf"
class="flex.messaging.endpoints.AMFEndpoint"/>
</channel-definition>
</channels>
para: <channels>
<channel-definition id="my-graniteamf" class="mx.messaging.channels.AMFChannel">
<endpoint
uri="http://{server.name}:{server.port}/granitepojoflex/graniteamf/amf"
class="flex.messaging.endpoints.AMFEndpoint"/>
</channel-definition>
</channels>
- feito isso é hora de adicionar esse arquivo nos parametros de compilação do projeto, indo nas propriedades, em
Flex Compiler, onde adicionei o seguinte:
-services "services-config.xml", com isto ira dizer onde está nossos dados...
- ainda é necessário configurar um outro detalhe nas propriedades do projeto, no item
Flex Build Path, o item:
Output folder URL, para dizer onde executar a aplicação em Flex... e como nesse caso estamos utilizando o tomcat o valor para esse item será:
http://localhost:8080/granitepojoflex/flex/bin, o como esse projeto do Flex está dentro do /WebConten/Flex do projeto Server Side, justifica o porque dessa URL
* hora de executar- primeiro colocar o projeto server side para executar, como não tem nenhum JSP, não irá aparecer nada quando o servidor e a aplicação estiver rodando
- agora hora de executar o projeto Flex, só mandar executar nosso main.mxml...
- lembrando que foi configurado a URL, você irá observar que estará executando em um endereço URL no seu browser
e eis um projeto em Flex Builder + Granite
* fazendo um deploy em um servidor para testarno caso usei o OC4J, mas antes...
- no projeto Server Side, clique com o botão direito e vá em exportar WAR...
- para facilitar exporte para o Desktop por exemplo
- no OC4J, na parte de administração eu selecionei esse .war gerado e realizei o deploy...
- após iniciado a aplicação eu usei a seguinte URL para acessar e testar:
http://localhost:8888/granitepojoflex/flex/bin/main.html, a porta é 8888, pois essa é a padrão do OC4J
segue o projeto Zipado:
[link] Obs.: esse projeto usa a versão modificada do Granite DS, falado nesse
[post]