Service-Config Dinâmico no Flex

24 views
Skip to first unread message

Flávio Tomazio

unread,
Nov 21, 2009, 6:34:30 PM11/21/09
to AIR-Brasil
Tem como definir um service-config dinâmico no Flex, para que eu não
precise re-compilar a aplicação quando envio ela de um ambiente de
desenvolvimento para um de produção?

Rafael

unread,
Nov 21, 2009, 7:37:49 PM11/21/09
to air-b...@googlegroups.com
se vc usar assim nao precisar reconmpilar

http://server.name:server.port/server.context


são constante existente no flex para evitar essas situações coloque isso no seu services-config.xml


2009/11/21 Flávio Tomazio <flavio...@gmail.com>


Tem como definir um service-config dinâmico no Flex, para que eu não
precise re-compilar a aplicação quando envio ela de um ambiente de
desenvolvimento para um de produção?




--
At. Rafael Amaro
Develop Web
Profile:
http://twitter.com/RafaelAmaro

"Viver a vida é superar os desafios e nunca desistir quando disserem que é impossível."

Eduardo Kraus

unread,
Nov 21, 2009, 7:51:19 PM11/21/09
to air-b...@googlegroups.com
Se fosse flex fdiria para deixar a URL relativa com seu SWF.

No AIR deixe o uri vazio e defina no RemoteObject o endpoint para a URL que dejejares.

Eduardo Kraus

Desenvolvedor
eduard...@gmail.com
blog.mxml.com.br
www.twitter.com/EduardoKraus


2009/11/21 Flávio Tomazio <flavio...@gmail.com>

Mário Júnior

unread,
Nov 21, 2009, 10:40:20 PM11/21/09
to air-b...@googlegroups.com
Pois é.. no AIR nao dá pra deixar "path relativo" ({server.url}/{context.root}) pq o AIR nao considera essas variaveis de compilacao.
Entao, a saída é vc criar seu ChannelSet na mao, nao é complicado:


(pseudo codigo)

<script>

[Bindable] private var _channelSet : ChannelSet = new ChannelSet();

//coloca isso logo no initialize do application...
var _endpoint:String= "http://meuservidor/MeuContexto"; 
var _channel:AMFChannel = new AMFChannel("my-amf", endpoint+"/messagebroker/amf");
 _channelSet.addChannel(_channel);

</script>


<mx:RemoteObject id="servico" destination="SuaClasseJava" .... channelSet="{_channelSet}" />


Nesse caso, vc poderia carregar a variavel "_endpoint" de qualquer lugar, como um INI ou um XML para só depois vc criar os channels, isso facilita bastante. =D


[]s.






2009/11/21 Eduardo Kraus <eduard...@gmail.com>



--
Mario Junior
Enterprise Java / Flex Architectures
Adobe Certified Expert Flex 3 with AIR

Sofshore Informática
http://www.sofshore.com.br
+55 (48) 3337 2003
Rua Pastor Willian Richard Schisler Filho 452 sl 102, 88034-100 Itacorubi
Florianopolis SC Brasil

Eduardo Kraus

unread,
Nov 22, 2009, 4:19:10 AM11/22/09
to air-b...@googlegroups.com
...em ambas as opções o mais fácil é estender a classe RemoteObject, e nesta classe fazer estas configurações para que não seje necessário faze-las em todas as chamadas do remoteObject.

package com.eduardokraus
{
    import mx.messaging.ChannelSet;
    import mx.messaging.channels.AMFChannel;
    import mx.rpc.remoting.mxml.RemoteObject;

    public class CustomRemoteObject extends RemoteObject
    {
        public function CustomRemoteObject()
        {
            var _channel:AMFChannel = new AMFChannel( "my-amf", "http://meuservidor/MeuContexto/amf" );

            var chanel:ChannelSet = new ChannelSet();
            this.channelSet = chanel.addChannel( _channel );
            super( null );
        }
    }
}

Ai usar assim:
<CustomRemoteObject id="servico" destination="SuaClasse" .... />


2009/11/22 Mário Júnior <junin...@gmail.com>

J.C.Ködel

unread,
Nov 21, 2009, 7:32:02 PM11/21/09
to air-b...@googlegroups.com
Em se tratando de Flex, costumo usar uma função em JavaScript que me retorna
a configuração desejada e leio-a invocando-a via ExternalInterface.

--------------------------------------------------
From: "Flávio Tomazio" <flavio...@gmail.com>
Sent: Saturday, November 21, 2009 9:34 PM
To: "AIR-Brasil" <air-b...@googlegroups.com>
Subject: [AIR-Brasil] Service-Config Dinâmico no Flex

>
> Tem como definir um service-config dinâmico no Flex, para que eu não
> precise re-compilar a aplicação quando envio ela de um ambiente de
> desenvolvimento para um de produção?

> --~--~---------~--~----~------------~-------~--~----~
> Você está recebendo este e-mail por que você está associado a lista
> AIR-Brasil localizado no Google-Groups.
> Para enviar um e-mail para lista, envie para: air-b...@googlegroups.com
> Para cancelar sua assinatura basta enviar um e-mail para:
> air-brasil-...@googlegroups.com
> Para maiores informações visite:
> http://www.adobeair.com.br
> http://groups.google.com/group/air-brasil?hl=pt-BR
> -~----------~----~----~----~------~----~------~--~---
>

Eduardo Kraus

unread,
Nov 22, 2009, 6:10:56 AM11/22/09
to air-b...@googlegroups.com
Como assim via JS?

2009/11/21 J.C.Ködel <jck...@gmail.com>

J.C.Ködel

unread,
Nov 22, 2009, 9:23:00 AM11/22/09
to air-b...@googlegroups.com
Então, ele falou Flex (e sei que esta é uma lista de AIR).
 
Se for Flex mesmo, há um HTML/Javascript por trás do aplicativo que você pode se comunicar via External Interface.
 
Se for AIR, um simples XML de config daria conta do recado, já que em AIR você pode acessar arquivos físicos.

Eduardo Kraus

unread,
Nov 22, 2009, 2:02:09 PM11/22/09
to air-b...@googlegroups.com
eu só não entendi aonde e por que entra o JS

2009/11/22 J.C.Ködel <jck...@gmail.com>

J.C.Ködel

unread,
Nov 22, 2009, 2:08:28 PM11/22/09
to air-b...@googlegroups.com
Quando faço um aplicativo que se comunique via web-service ou http request (e sempre o faço via AS, nunca via MXML), geralmente deixo a url do serviço em um javascript e leio a configuração via ExternalInterface.call("getWSURL").

Flávio Tomazio

unread,
Nov 23, 2009, 12:11:55 PM11/23/09
to AIR-Brasil
E como faria a URL Relativa ao SWF?

On 21 nov, 22:51, Eduardo Kraus <eduardokr...@gmail.com> wrote:
> Se fosse flex fdiria para deixar a URL relativa com seu SWF.
>
> No AIR deixe o uri vazio e defina no RemoteObject o *endpoint *para a URL
> que dejejares.
> *
> Eduardo Kraus*
> Desenvolvedor
> eduardokr...@gmail.com
> blog.mxml.com.brwww.twitter.com/EduardoKraus
>
> 2009/11/21 Flávio Tomazio <flaviotoma...@gmail.com>

Eduardo Kraus

unread,
Nov 23, 2009, 12:27:05 PM11/23/09
to air-b...@googlegroups.com
Muito simples

<endpoint uri="amfphp/gateway.php"

Relativo

ADOTE ESTA CAMPANHA:

1. Apague o meu e-mail e o meu nome.
2. Apague também os endereços dos amigos antes de reenviar.
3. Encaminhe como cópia oculta (Cco ou Bcc) aos SEUS destinatários.
Agindo sempre assim dificultaremos a disseminação de vírus, spams e banners.


2009/11/23 Flávio Tomazio <flavio...@gmail.com>
Reply all
Reply to author
Forward
0 new messages