> 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 -~----------~----~----~----~------~----~------~--~---