Saquei... vc quer manter o escopo do objeto sempre "vivo", independente das
requisicoes... ou entao ter o controle de quando manter esse objeto vivo (na
sessao) e qnd destrui-lo, certo?

Bom, vc pode usar o FlexSession para guardar objetos na sessao, mas precisa
ter cuidado para q esse escopo nao fique "para toda a aplicação" mas só para
o FlexClient que solicitou.

Pesquise na documentação (blazeds_dev_guide.pdf) por essas duas classes:
FlexClient e FlexSession.
Também, verifique q vc precisará colocar os seus servicos com scope de
"session". Qnd usa o remoting-config.xml é fácil de configurar colocando:

<destination id="blablaba'>
  <source>pacote.da.classe.Servico</source>
  <scope>session</scope>
  < ... />
</destination>

Mas, como vi q vc está usando o Spring-BlazeDS Integration, precisa olhar na
documentação do spring como muda esse contexto (nao sei pq nunca fiz, mas
acho q deve ser na própria anotação).


Abraços, t+




Em 13 de setembro de 2010 20:44, Leonardo Ribeiro
<leojribe...@gmail.com>escreveu:

> Beleza Mário,
>
> Mas me diz uma coisa, supondo a situação (novamente) da nota fiscal que tem
> os seus itens (uma collections falando em java).
> O objeto nota fiscal tem responsabilidade sobre os seus itens, é através
> desse objeto que podemos adicionar e remover itens (na nota não tem o método
> setItens(List itens)).
> Sendo assim, eu teria um dto nota que contem dto's itens...
>
> O problema que vejo é que na view (flex) eu vou adicionar dto's notas e
> itens (não haverá nenhuma regra aqui)....
> quando for submetido para o server a nota com seus itens o serviço
> receberá, irá fazer a conversão para as entidades de domínio e a regra será
> aplicada, mas se o cara digitou uma nota com uns 15, 20, 50 itens ele só vai
> ter um feedback do sistema no final, ou to errado?
>
>
> Agora me diz o que acha da seguinte situação:
>
> public abstract class DomainEntity implements IDomainEntity {
>
> private Long id;
> }
>
> public class Usuario extends DomainEntity {
>
> private String nome;
> private String login;
>  private String senha;
> private String email;
> }
>
> @Service
> @RemotingDestination
> public class UsuarioUseCase implements IUsuarioUseCase {
>
> public Usuario usuario;
>  public void novo() {
> this.usuario = new Usuario();
> }
>  public void setNome(String nome) {
> this.usuario.setNome(nome);
>  }
>  public String getNome() {
>  return this.usuario.getNome();
> }
>
> //outros metodos delegate...(para cada atributo de usuario)
> }
>
> Minha view tem acesso a esse useCase e no meu formulário por exemplo,
> quando eu
> clicasse em "novo" seria invocado o metodo remoto "novo" de
> "usuarioUseCase" que criaria uma
> nova instancia de Usuario... e a cada campo preenchido invocasse um metodo
> correspondente,
> por exemplo, no cadastro de usuario eu após entrar com o valor para o nome
> seria invocado o
> metodo setNome do server e assim para os outros atributos.
> Com isso eu poderia já ir quando necessário validando com as regras de
> negócio.
> E como o flex é assincrono já ajudaria pois o processo no client não vai
> "parar" esperando
> o retorno do server...
> Mas para isso eu precisaria ter uma referência remota para a "sessão" para
> saber que o nome
> que está sendo setado no metodo setNome, se refere ao usuário previamente
> criado pelo metodo
> "novo".
> Tem como eu fazer isso no Flex (guardar a "sessão" (não sei se é sessão))?
>
>
>
> 2010/9/13 Mário Júnior <juninho...@gmail.com>
>
> Exactly!
>>
>> A idéia é vc sempre transportar DTOs e nunca expor suas entidades (objetos
>> de domínio).
>> Em suma, quase sempre os DTOs tem a mesma estrutura de entidades, mas nem
>> sempre tb. Isso te permite uma maior flexibilidade em transportar dados
>> entre view e services e, também, não expondo seus domínios vc consegue
>> manter a regra de negócio entre eles mais "oculta" para sua view (uma vez q
>> a view só conhece os DTOs).
>>
>> Agora, como já comentamos, concordamos é mais "chato" e burocrático
>> trabalhar com DTOs, principalmente na hora de vc "converter" para
>> entidades... pensando nisso o Bruno Fuster da DClick postou uma ferramenta
>> bem interessante:
>>
>> http://blog.dclick.com.br/2009/10/22/transfer-object-pattern-annotations/pt/
>>
>>
>> []s
>>
>>
>>
>> Em 13 de setembro de 2010 10:40, Leonardo Ribeiro 
>> <leojribe...@gmail.com>escreveu:
>>
>> Fala Mário...
>>>
>>> Só uma dúvida cara, usando a abordagem dos DTOs, se eu vou criar um novo
>>> "usuario" por exemplo, no meu código flex eu irei criar um novo DTO usuario
>>> e envia-lo para o server e lá irei fazer a "conversão" em um usuario do
>>> "dominio" e realizar as operações necessárias, correto?
>>>
>>> Obrigado
>>>
>>> 2010/9/8 Leonardo Ribeiro <leojribe...@gmail.com>
>>>
>>> Sim, eu já havia pensado nisso, nos DTOs, mas queria ter a opinião de
>>>> quem já usa ou se deparou com o mesmo problema que o meu aqui agora...
>>>>
>>>> []'s
>>>>
>>>>
>>>> 2010/9/8 Mário Júnior <juninho...@gmail.com>
>>>>
>>>>> Sim, trabalhoso, mas pensando de forma mais "politicamente correta"
>>>>> seria isso mesmo!
>>>>>
>>>>> Pela conversa - e pela dúvida específica - me parece q vc está expondo
>>>>> diretamente as entidades do seu negócio né?
>>>>> No começo eu tb fazia isso (
>>>>> http://blog.digows.com/integrando-adobe-flex-blazeds-springframework-hibernate-uma-soluo-opensource-para-sistemas-web-parte-2-final/#comment-149..
>>>>>  caramba, já tem +2 anos esse meu comentário =P) mas depois com o tempo me
>>>>> conscientizei de q, de fato, não é uma boa prática expor entidades do
>>>>> hibernate, justamente por me deparar com os principios básicos de
>>>>> encapsulamento, code responsability, etc... então adotei o uso de VOs (q 
>>>>> hj
>>>>> já aprendi/acostumei a chamá-los de DTOs). São objetos "burros" q
>>>>> simplesmente trafegam dados entre a view e os services, e daí nos services
>>>>> eu transfiro os dados desses DTOs para as entidades, respeitando toda a
>>>>> regra de negócio encapsulado nesses objetos.
>>>>>
>>>>> Enfim, como comentei antes, cada caso é um caso, e todos estão sujeitos
>>>>> a longas análises... pra isso estamos ae :)
>>>>>
>>>>>
>>>>> []s e boa sorte.
>>>>>
>>>>>
>>>>>
>>>>> Em 8 de setembro de 2010 19:07, Leonardo Ribeiro <
>>>>> leojribe...@gmail.com> escreveu:
>>>>>
>>>>> Mário,
>>>>>>
>>>>>> É, realmente pensando bem não seria uma boa já que teria os casts...
>>>>>> Você que já tem experiência em vários projetos java x flex, como
>>>>>> resolve o problema do encapsulamento, tendo como exemplo o simples objeto
>>>>>> NotaFiscal que tem como atributo Itens ?
>>>>>>
>>>>>> Sendo que em NotaFiscal não tem um método setItens(List itens) mas
>>>>>> sim, por exemplo, addItem(Item item), porque a nota que deve controlar 
>>>>>> seus
>>>>>> itens, fazendo se necessário alguma validação no item passado como 
>>>>>> parâmetro
>>>>>> no método addItem(Item item)?
>>>>>>
>>>>>> Usa VO? Nesse caso teria que sempre que ler do BD que retorna objetos
>>>>>> do domínio, fazer a criação do VO correspondente e enviar para o Flex e
>>>>>> quando receber do Flex o VO fazer o inverso para poder trabalhar no 
>>>>>> server
>>>>>> com o objeto de domínio correspondente... isso? Trabalhoso né? hehe
>>>>>>
>>>>>> Obrigado pela atenção
>>>>>>
>>>>>>
>>>>>> 2010/9/8 Mário Júnior <juninho...@gmail.com>
>>>>>>
>>>>>> É possível sim.
>>>>>>> Abra o source da classe JavaAdapter. Nessa classe vc tem o método
>>>>>>> invoke(Message message).
>>>>>>>
>>>>>>> Dentro de message (faça um cast para RemotingMessage) vc tem tudo oq
>>>>>>> precisa saber (qual classe de serviço será chamada e qual o objeto de
>>>>>>> transporte será passado como argumento, assim como qual é o seu 
>>>>>>> homonimo no
>>>>>>> java, etc...).
>>>>>>>
>>>>>>> Agora, precisa ter um bom cuidado com isso, pois ao meu ver, vc
>>>>>>> estaria envolvendo uma certa "regra de negócio" dentro desse adapter. 
>>>>>>> Não
>>>>>>> digo que é errado (não sou extremista) mas fique ciente q a medida q o 
>>>>>>> seu
>>>>>>> projeto for crescendo (e as regras  aumentando) vc vai ter sempre q 
>>>>>>> fazer
>>>>>>> "testes" no objeto tranportado para saber se é um tipo X ou tipo Y para 
>>>>>>> daí
>>>>>>> então decidir qual método chamar (ou deixar de chamar), etc...
>>>>>>>
>>>>>>> Daí fica a pergunta: Não seria melhor fazer esses testes na sua
>>>>>>> camada de serviços, em vez de fazer na camada de comunicação?
>>>>>>>
>>>>>>> ps: cada "caso" é um caso... :)
>>>>>>>
>>>>>>>
>>>>>>> []s
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> Em 8 de setembro de 2010 15:31, Leonardo Ribeiro <
>>>>>>> leojribe...@gmail.com> escreveu:
>>>>>>>
>>>>>>>>  Pessoal,
>>>>>>>>
>>>>>>>> Alguém que já tenha mexido no fonte do BlazeDS sabe se é possível
>>>>>>>> fazer com que ele, ao invés de fazer a "criação/injeção" dos valores do
>>>>>>>> objeto as3 -> java via setters publicos usar reflection?
>>>>>>>>
>>>>>>>> Porque isso? Porque daí eu não precisaria de setID por exemplo, que
>>>>>>>> seria a "pk" do objeto, uma vez que essa "pk" seria criada no 
>>>>>>>> construtor do
>>>>>>>> objeto e não tem sentido alterar. Outro caso seria de no objeto java 
>>>>>>>> ter uma
>>>>>>>> coleção como atributo (típico caso de nota fiscal ter uma coleção de 
>>>>>>>> itens)
>>>>>>>> com isso não precisaria ter um setItens(List itens) no objeto
>>>>>>>> NotaFiscal.java, e sim um addItem(Item item), mantendo o 
>>>>>>>> encapsulamento,
>>>>>>>> pois quem deve inserir/gerir os itens da nota é a nota.
>>>>>>>>
>>>>>>>>
>>>>>>>> --
>>>>>>>> []'s
>>>>>>>> Leonardo
>>>>>>>>
>>>>>>>> Linux User #488650
>>>>>>>> Ubuntu User #27045
>>>>>>>> Mais sobre o Ubuntu em português: http://www.ubuntu-br.org/comece
>>>>>>>>
>>>>>>>> --
>>>>>>>> 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
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> --
>>>>>>> Mario Junior
>>>>>>> http://blog.mariojunior.com/
>>>>>>> @mariojunior
>>>>>>>
>>>>>>> --
>>>>>>> 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
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>> --
>>>>>> []'s
>>>>>> Leonardo
>>>>>>
>>>>>> Linux User #488650
>>>>>> Ubuntu User #27045
>>>>>> Mais sobre o Ubuntu em português: http://www.ubuntu-br.org/comece
>>>>>>
>>>>>> --
>>>>>> 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
>>>>>>
>>>>>
>>>>>
>>>>>
>>>>> --
>>>>> Mario Junior
>>>>> http://blog.mariojunior.com/
>>>>> @mariojunior
>>>>>
>>>>> --
>>>>> 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
>>>>>
>>>>
>>>>
>>>>
>>>> --
>>>> []'s
>>>> Leonardo
>>>>
>>>> Linux User #488650
>>>> Ubuntu User #27045
>>>> Mais sobre o Ubuntu em português: http://www.ubuntu-br.org/comece
>>>>
>>>
>>>
>>>
>>> --
>>> []'s
>>> Leonardo
>>>
>>> Linux User #488650
>>> Ubuntu User #27045
>>> Mais sobre o Ubuntu em português: http://www.ubuntu-br.org/comece
>>>
>>> --
>>> 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
>>>
>>
>>
>>
>> --
>> Mario Junior
>> http://blog.mariojunior.com/
>> @mariojunior
>>
>> --
>> 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
>>
>
>
>
> --
> []'s
> Leonardo
>
> Linux User #488650
> Ubuntu User #27045
> Mais sobre o Ubuntu em português: http://www.ubuntu-br.org/comece
>
> --
> 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
>



-- 
Mario Junior
http://blog.mariojunior.com/
@mariojunior

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