> 1) Remova o <scope>application</scope> e teste novamente o sessionId.
       Eu removi e ocorreu o mesmo problema =/

> 2) se id da sessao continuar mudando para a cada requisição, isole a situção
> em um exemplo bem simples e publique seus arquivos de configuração em algum
> lugar para que possamos ver e tentar adivinhar oq est[a acontecendo.
> Diga-nos tb qual o seu ambiente de desenvolvimento (onde essa situação está
> ocorrendo).

    Estou programando no Sistema Operacional WindowsVista, utilizando
o eclipse 3.4.0, Flexbuilder 3.0, tomcat 6.0.18, Java 1.6.0_07-b06

    Eu fiz uma aplicação bem simples. Um cliente Flex e um servidor
que retorna um String contendo a data de hoje. E FUNCIONOU!!!! Ele
criava apenas uma sessão.
    Eu passei a tarde remexendo e descobri algumas coisas. Acho que o
problema está no cliente Flex e não no servidor. Vou explicar
rapidamente como é o meu cliente Flex:

O mxml principal (mx:Application) contém dois módulos
(mx:ModuleLoader). Um contém vários checkbox que quando o cliente
ativa ele envia uma requisição para o servidor. O outro é a janela
principal que mostra a resposta do que foi solicitado. O RemoteObject
é criado em um desses módulos.

Eu fiz o seguinte teste: criei um RemoteObject no mx:Application e um
botão para fazer uma requisição qualquer usando esse RemoteObject e um
outro botão dentro de um mx:ModuloLoader que faz a mesma coisa usando
o RemoteObject que estava dentro desse mx:ModuloLoader. E advinha qual
foi o resultado?! Quando eu clicava várias vezes no botão do
mx:ModuloLoader ele criava uma seção para cada requisição, porém o
botão do mx:Application criou apenas uma seção não importando quantas
requisições eram feitas.

No início eu achava que era por causa do mx:ModuleLoader, mas eu fiz
um teste criando um mx:ModuleLoader naquela aplicação de exibir a data
e ele funcionou perfeitamente.

Bem, se não houver uma explicação razoável vou criar um RemoteObject
no mxml principal para tratar todas as requisições.
Eu ainda não testei o caso do datapush (Consumer). Isso vai ficar pra
manhã.

Qualquer novidade eu posto aqui pra lhe manter atualizado.

Valeu cara!
t+


On 9 fev, 21:07, Mário Júnior <juninho...@gmail.com> wrote:
> Hum... do Messaging tudo ok, parece q o problema está nessa criação da
> sessao.
>
> Muito estranho ele criar uma nova sessão a cada requisição... isso não pode
> acontecer.
> Faça outros dois favores:
>
> 1) Remova o <scope>application</scope> e teste novamente o sessionId.
>
> 2) se id da sessao continuar mudando para a cada requisição, isole a situção
> em um exemplo bem simples e publique seus arquivos de configuração em algum
> lugar para que possamos ver e tentar adivinhar oq est[a acontecendo.
> Diga-nos tb qual o seu ambiente de desenvolvimento (onde essa situação está
> ocorrendo).
>
> T+
>
> 2009/2/9 Dam <damia...@gmail.com>
>
>
>
>
>
> > Olá Mário,
>
> > Obrigado por ter respondido.
> > Então vamos lá...
>
> > ##### TESTE 1 ######
> > Eu não sei como pegar a instância da Classe FlexContext. Eu achava que
> > era um singleton, mas não encontrei nenhum método para obter a
> > instância. Eu fiz da seguinte forma:
>
> > toda vez que o servidor era requisitado eu imprimia no log o
> > "clientId" e o "sessionId" através dos seguintes comandos:
>
> > FlexContext.getFlexSession().getId()
> > FlexContext.getFlexClient().getId()
>
> > O resultado é que todas as sessionId são diferentes e os clientId são
> > iguais (o que era esperado).
> > Quando acesso o serviço por outro browser, o clientId é diferente (até
> > aqui Ok) e os sessionId são diferentes a cada requisição (como vem
> > acontecendo).
>
> >  ##### TESTE 2  (Messaging) ######
>
> > O log do BlazeDS imprime a mensagem abaixo logo depois de
> > "consumer.subscribe()" . De acordo com esse log, o clientId é null =/
>
> > [BlazeDS] Channel endpoint my-datapush received request.
> > [BlazeDS] Deserializing AMF/HTTP request
> > Version: 3
> >  (Message #0 targetURI=null, responseURI=/1)
> >    (Array #0)
> >      [0] = (Typed Object #0 'flex.messaging.messages.CommandMessage')
> >        operation = 5
> >        correlationId = ""
> >        body = (Object #1)
> >        headers = (Object #2)
> >          DSMessagingVersion = 1
> >          DSId = "91C38785-4C18-7147-B8DE-F0A9A49B8811"
> >        timeToLive = 0
> >        messageId = "61D5A64D-8D5C-2827-A49F-5CE2818B1033"
> >        timestamp = 0
> >        clientId = null
> >        destination = ""
>
> > [BlazeDS] Serializing AMF/HTTP response
> > Version: 3
> >  (Message #0 targetURI=/1/onResult, responseURI=)
> >    (Externalizable Object #0 'DSK')
> >      (Object #1)
> >        DSMessagingVersion = 1.0
> >        DSId = "91C38785-4C18-7147-B8DE-F0A9A49B8811"
> > 1.234213962129E12
> > (Byte Array #2, Length 16)
> > (Byte Array #3, Length 16)
> > (Byte Array #4, Length 16)
>
> > On 9 fev, 10:46, Mário Júnior <juninho...@gmail.com> wrote:
> > > Muito estranho esse comportamento.. receio q haja algum problema com o
> > > container (oq é muito difícil de acontecer tb)
>
> > > Com o Remote Object vamos fazer 2 testes:
> > > ##### TESTE 1 ######
> > > 1) Faz o seguinte mano, no construtor da sua classe de serviço vc pega o
> > > contexto e guarda num atributo privado da classe.
> > > 2) na execução do seu método, vc faz um simples println do session_id.
>
> > > 3) chame o método várias vezes e verifique se o id da sessão é alterado a
> > > cada chamada.
>
> > > Restulado esperado: o session_id TEM q ser sempre o mesmo para essa
> > > aplicação
>
> > > ##### TESTE 2 ######
> > > Sem fechar a aplicação anterior, Abra a mesma aplicação flex em outro
> > > browser e chame o método novamente.
> > > Resultado esperado: o session_id dessa nova aplicação TEM q ser DIFERENTE
> > do
> > > sesison_id criado pela aplicação anterior
>
> > > Já com relação ao Messaging:
> > > 1) dê uma olhada no log do blaze (lembrando q o logging precisa estar
> > > ativado (true) no services-config.xml) e verifique se um clientID é
> > criado
> > > no momento q o consumer é inscrito (subscribe).
>
> > > Dá um retorno pra gente saber.
>
> > > Um abraço e boa sorte.
>
> > > 2009/2/9 Dam <damia...@gmail.com>
>
> > > > Bom dia pessoal,
>
> > > > estou tendo um problema grave de gerenciamento de seções. A situação é
> > > > a seguinte:
>
> > > > estou trabalhando com um servidor Tomcat+Blaze DS. O canal está
> > > > definido como AMFChannel no arquivo services-config.xml:
>
> > > > <channel-definition id="my-amf"
> > > > class="mx.messaging.channels.AMFChannel">
> > > >            <endpoint url="
> >http://localhost:8080/servidor/messagebroker/amf
> > > > "
> > > > class="flex.messaging.endpoints.AMFEndpoint"/>
> > > > </channel-definition>
>
> > > > No arquivo remoting-config.xml eu informo qual a classe que
> > > > representará o RemoteObject no Flex:
>
> > > > <destination id="service">
> > > >       <properties>
> > > >           <source>controller.Service</source>
> > > >           <scope>application</scope>
> > > >       </properties>
> > > > </destination>
>
> > > > Depois, no cliente Flex, eu crio um RemoteObject quando o modulo mxml
> > > > é carregado. Toda vez que clico em um botão na interface Flex ele
> > > > chama uma função do meu RemoteObject.
>
> > > > Ok, agora vamos ao problema =P
>
> > > > Pra quem está acostumado a usar o Tomcat, as versões mais novas vem
> > > > com um contador de seções na parte de gerenciamento de aplicações. O
> > > > que eu observo é que toda vem que eu chamo o RemoteObject o cliente
> > > > Flex cria uma nova seção. No início eu achava que era pq ele estava
> > > > criando vários RemoteObject, mas agora eu constatei que apenas 1 é
> > > > criado.
>
> > > > Alguém sabe como fazer para ele não criar uma nova seção toda vez que
> > > > o Flex faz alguma requisição para o servidor?
>
> > > > E este é apenas um caso simples. A coisa piora quando eu uso data
> > > > push. Quando eu crio um Consumer no Flex pra ficar ouvindo um
> > > > determinado cannal, ele fica criando seções indefinidamente =/
>
> > > --
> > > Mário de Souza Júnior
> > > Programador Java / Adobe Flexhttp://blog.mariojunior.com
>
> --
> Mário de Souza Júnior
> Programador Java / Adobe Flexhttp://blog.mariojunior.com
--~--~---------~--~----~------------~-------~--~----~
Você recebeu esta mensagem porque está inscrito na lista "flexdev"
Para enviar uma mensagem, envie um e-mail para flexdev@googlegroups.com
Para sair da lista, envie um email em branco para 
flexdev-unsubscr...@googlegroups.com
Mais opções estão disponíveis em http://groups.google.com/group/flexdev
-~----------~----~----~----~------~----~------~--~---

Responder a