Cara!! Usa o GraniteDS e Seja Feliz...

Depois dê uma olhada na solução que o pessoal fez.. www.graniteds.org



On Tue, Nov 4, 2008 at 6:43 PM, Mário Júnior <[EMAIL PROTECTED]> wrote:

> Eu gosto de escovar bits... :P
> hehehehehehe
>
>
>
> 2008/11/4 Rafael Nami <[EMAIL PROTECTED]>
>
> Esta opção que o Fábio falou é interessante. Já utilizei com GWT (aka
>> Presentation Model) e funcionou perfeitamente. É melhor porque pode-se
>> simplificar os objetos para passar para a view, o que faz o cara nunca ter
>> LazyInicializationException, porque o presentationModel sempre será criado
>> dentro de um contexto persistente (ou seja, antes do blazeDS converter o
>> java para .as).
>> Me desculpem a sinceridade, mas OpenSessionInView é um "workaround" para
>> isso (LazyInitializationException) não acontecer em aplicações web. Lembro
>> até que quando apareceu esse pattern (acho que foi no começo do Hibernate 2)
>> os próprios caras do Hibernate desencorajavam este approach. Só que depois
>> eles voltaram atrás, porque era uma boa na adoção do produto deles. :)
>>
>> Esta de modificar o BlazeDS também é interessante, porém intrusivo paca :)
>> É para os escovadores de bits de plantão (brincadeira galera, tem que manjar
>> e ser macho paca pra fazer isso) :)
>>
>> Aquele abraço
>>
>> Rafael Mauricio Nami
>>
>> 2008/11/4 George Queiroz <[EMAIL PROTECTED]>
>>
>>> A mudança foi aqui, acho eu:
>>>
>>>
>>> flex.messaging.io.amf. Amf3Output.writePropertyProxy
>>>
>>> depois re-gerei o jar e pumba, funcionou.
>>>
>>> coloquei um try catch pra o erro do Lazy e mando null no atributo na
>>> classe flez :)
>>>
>>>
>>> 2008/11/4 LeonardoW <[EMAIL PROTECTED]>
>>>
>>>>
>>>> ERROR [LazyInitializationException] could not initialize proxy - the
>>>> owning Session was closed
>>>> org.hibernate.LazyInitializationException: could not initialize proxy
>>>> - the owning Session was closed
>>>>        at
>>>>
>>>> org.hibernate.proxy.AbstractLazyInitializer.initialize(AbstractLazyInitializer.java:
>>>> 56)
>>>>        at
>>>>
>>>> org.hibernate.proxy.AbstractLazyInitializer.getImplementation(AbstractLazyInitializer.java:
>>>> 98)
>>>>        at
>>>>
>>>> org.hibernate.proxy.CGLIBLazyInitializer.intercept(CGLIBLazyInitializer.java:
>>>> 158)
>>>>        at br.com.cpr.flex.Usuario$$EnhancerByCGLIB$
>>>> $1c43bd33_3.getNuContatelefone(<generated>)
>>>>        at sun.reflect.GeneratedMethodAccessor360.invoke(Unknown Source)
>>>>        at
>>>>
>>>> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:
>>>> 25)
>>>>        at java.lang.reflect.Method.invoke(Method.java:597)
>>>>        at
>>>> flex.messaging.io.BeanProxy$BeanProperty.get(BeanProxy.java:738)
>>>>        at flex.messaging.io.BeanProxy.getBeanValue(BeanProxy.java:199)
>>>>        at flex.messaging.io.BeanProxy.getValue(BeanProxy.java:176)
>>>>        at
>>>> flex.messaging.io.amf.Amf3Output.writePropertyProxy(Amf3Output.java:
>>>> 565)
>>>>        at
>>>> flex.messaging.io.amf.Amf3Output.writeCustomObject(Amf3Output.java:
>>>> 518)
>>>>        at
>>>> flex.messaging.io.amf.Amf3Output.writeObject(Amf3Output.java:193)
>>>>        at
>>>>
>>>> flex.messaging.io.amf.Java15Amf3Output.writeObject(Java15Amf3Output.java:
>>>> 26)
>>>>        at
>>>> flex.messaging.io.amf.Amf3Output.writeObjectProperty(Amf3Output.java:
>>>> 243)
>>>>        at
>>>> flex.messaging.io.amf.Amf3Output.writePropertyProxy(Amf3Output.java:
>>>> 566)
>>>>        at
>>>> flex.messaging.io.amf.Amf3Output.writeCustomObject(Amf3Output.java:
>>>> 518)
>>>>        at
>>>> flex.messaging.io.amf.Amf3Output.writeObject(Amf3Output.java:193)
>>>>        at
>>>>
>>>> flex.messaging.io.amf.Java15Amf3Output.writeObject(Java15Amf3Output.java:
>>>> 26)
>>>>        at
>>>> flex.messaging.io.amf.Amf3Output.writeObjectArray(Amf3Output.java:
>>>> 817)
>>>>        at
>>>> flex.messaging.io.amf.Amf3Output.writeAMFArray(Amf3Output.java:
>>>> 431)
>>>>        at
>>>> flex.messaging.io.amf.Amf3Output.writeObject(Amf3Output.java:179)
>>>>        at
>>>>
>>>> flex.messaging.io.amf.Java15Amf3Output.writeObject(Java15Amf3Output.java:
>>>> 26)
>>>>        at
>>>> flex.messaging.io.ArrayCollection.writeExternal(ArrayCollection.java:
>>>> 97)
>>>>        at
>>>> flex.messaging.io.amf.Amf3Output.writePropertyProxy(Amf3Output.java:
>>>> 556)
>>>>        at
>>>> flex.messaging.io.amf.Amf3Output.writeArrayCollection(Amf3Output.java:
>>>> 462)
>>>>        at
>>>> flex.messaging.io.amf.Amf3Output.writeObject(Amf3Output.java:175)
>>>>        at
>>>>
>>>> flex.messaging.io.amf.Java15Amf3Output.writeObject(Java15Amf3Output.java:
>>>> 26)
>>>>        at
>>>>
>>>> flex.messaging.messages.AbstractMessage.writeExternal(AbstractMessage.java:
>>>> 352)
>>>>        at
>>>> flex.messaging.messages.AsyncMessage.writeExternal(AsyncMessage.java:
>>>> 140)
>>>>        at
>>>>
>>>> flex.messaging.messages.AcknowledgeMessage.writeExternal(AcknowledgeMessage.java:
>>>> 92)
>>>>        at
>>>>
>>>> flex.messaging.messages.AcknowledgeMessageExt.writeExternal(AcknowledgeMessageExt.java:
>>>> 55)
>>>>        at
>>>> flex.messaging.io.amf.Amf3Output.writePropertyProxy(Amf3Output.java:
>>>> 556)
>>>>        at
>>>> flex.messaging.io.amf.Amf3Output.writeCustomObject(Amf3Output.java:
>>>> 518)
>>>>        at
>>>> flex.messaging.io.amf.Amf3Output.writeObject(Amf3Output.java:193)
>>>>        at
>>>>
>>>> flex.messaging.io.amf.Java15Amf3Output.writeObject(Java15Amf3Output.java:
>>>> 26)
>>>>        at
>>>> flex.messaging.io.amf.Amf0Output.writeObject(Amf0Output.java:193)
>>>>        at
>>>>
>>>> flex.messaging.io.amf.Java15Amf0Output.writeObject(Java15Amf0Output.java:
>>>> 41)
>>>>        at
>>>>
>>>> flex.messaging.io.amf.AmfMessageSerializer.writeObject(AmfMessageSerializer.java:
>>>> 196)
>>>>        at
>>>>
>>>> flex.messaging.io.amf.AmfMessageSerializer.writeBody(AmfMessageSerializer.java:
>>>> 186)
>>>>        at
>>>>
>>>> flex.messaging.io.amf.AmfMessageSerializer.writeMessage(AmfMessageSerializer.java:
>>>> 142)
>>>>        at
>>>>
>>>> flex.messaging.endpoints.amf.SerializationFilter.invoke(SerializationFilter.java:
>>>> 179)
>>>>        at
>>>> flex.messaging.endpoints.BaseHTTPEndpoint.service(BaseHTTPEndpoint.java:
>>>> 274)
>>>>        at
>>>> flex.messaging.MessageBrokerServlet.service(MessageBrokerServlet.java:
>>>> 377)
>>>>        at javax.servlet.http.HttpServlet.service(HttpServlet.java:810)
>>>>        at
>>>>
>>>> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:
>>>> 252)
>>>>        at
>>>>
>>>> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:
>>>> 173)
>>>>        at
>>>>
>>>> net.digitalprimates.persistence.hibernate.utils.filters.HibernateSessionServletFilter.doFilter(HibernateSessionServletFilter.java:
>>>> 62)
>>>>        at
>>>>
>>>> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:
>>>> 202)
>>>>        at
>>>>
>>>> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:
>>>> 173)
>>>>        at
>>>>
>>>> org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:
>>>> 96)
>>>>        at
>>>>
>>>> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:
>>>> 202)
>>>>        at
>>>>
>>>> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:
>>>> 173)
>>>>        at
>>>>
>>>> org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:
>>>> 213)
>>>>        at
>>>>
>>>> org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:
>>>> 178)
>>>>        at
>>>>
>>>> org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:
>>>> 175)
>>>>        at
>>>>
>>>> org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:
>>>> 524)
>>>>        at
>>>> flex.messaging.security.TomcatValve.invoke(TomcatValve.java:143)
>>>>        at
>>>>
>>>> org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:
>>>> 74)
>>>>        at
>>>>
>>>> org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:
>>>> 126)
>>>>        at
>>>>
>>>> org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:
>>>> 105)
>>>>        at
>>>>
>>>> org.jboss.web.tomcat.tc5.jca.CachedConnectionValve.invoke(CachedConnectionValve.java:
>>>> 156)
>>>>        at
>>>>
>>>> org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:
>>>> 107)
>>>>        at
>>>> org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:
>>>> 148)
>>>>        at
>>>> org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:
>>>> 869)
>>>>        at org.apache.coyote.http11.Http11BaseProtocol
>>>> $Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:
>>>> 664)
>>>>        at
>>>>
>>>> org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:
>>>> 527)
>>>>        at
>>>>
>>>> org.apache.tomcat.util.net.MasterSlaveWorkerThread.run(MasterSlaveWorkerThread.java:
>>>> 112)
>>>>        at java.lang.Thread.run(Thread.java:619)
>>>>
>>>> On 4 nov, 14:02, "George Queiroz" <[EMAIL PROTECTED]> wrote:
>>>> > Leo, eu sai da empresa, e os caras num encontraram o fonte
>>>> modificado...
>>>> >
>>>> > manda o stack q vai q lembro, te aviso.
>>>> >
>>>> > 2008/11/4 Léo <[EMAIL PROTECTED]>
>>>> >
>>>> > > Blz!!! E a solução feita no blazeDS, podes me passar para dar uma
>>>> olhada?Muito
>>>> > > obrigado pelas idéias
>>>> > > Vlw
>>>> >
>>>> > > 2008/11/4 George Queiroz <[EMAIL PROTECTED]>
>>>> >
>>>> > > Leo em resumo ou vc liga o opensessioninview no web.xml pra os lazy
>>>> serem
>>>> > >> carregados ou num tem solução, pois o blazeds pega todos os
>>>> atributos da
>>>> > >> entidade pai e manda um get... se vc ligar o OSIV ai ele vai
>>>> carregar tudo e
>>>> > >> num é a idéia.
>>>> >
>>>> > >> 2008/11/4 Léo <[EMAIL PROTECTED]>
>>>> >
>>>> > >>> Olá pessoal, estou bem informado sobre lazy loading... sei pq
>>>> acontence
>>>> > >>> etc...de qualquer forma agradeço a todos pelas respostas.
>>>> > >>> Essa alternativa de alterar o source do BlazeDS não me parece
>>>> ideal, pois
>>>> > >>> sempre que atualizar o blazeDS terei que lembrar de alterar
>>>> novamente e
>>>> > >>> gerar o respectivo jar. certo?
>>>> > >>> Mas posta ai essa solução, fiquei interessado.
>>>> > >>> Vlw
>>>> >
>>>> > >>> 2008/11/4 Mário Júnior <[EMAIL PROTECTED]>
>>>> >
>>>> > >>>> Dá pra alterar no source do blazeDS para nao lançar
>>>> > >>>> LazyInitializationException, e setar o atributo da coleção para
>>>> null.
>>>> > >>>> O George já fez isso aqui, eu até vi no source onde faz... assim
>>>> q eu
>>>> > >>>> tiver um tepinho te passo.. mas será bem intrusivo alterar o
>>>> source do
>>>> > >>>> blazeds.
>>>> >
>>>> > >>>> George.. aparece aí rapaz...
>>>> >
>>>> > >>>> 2008/11/4 Léo <[EMAIL PROTECTED]>
>>>> >
>>>> > >>>> Sim, eu sei...mas sempre que retorno os dados do java para o flex
>>>> ele
>>>> > >>>>> tenta carregar os proxys, ai a sessão está fechada e ocorre o
>>>> erro. Deveria
>>>> > >>>>> pelo menos ter a opção de escolher se você quer que carregue ou
>>>> não.
>>>> > >>>>> No caso ou eu seto para null os proxys ou deixo o erro
>>>> acontecer...
>>>> >
>>>> > >>>>> 2008/11/4 Rafael Nami <[EMAIL PROTECTED]>
>>>> >
>>>> > >>>>> Não é essa a questão Leo. O problema existe - Lazy
>>>> initialization é o
>>>> > >>>>>> um problema de implementação. Provavelmente esteja chamando um
>>>> proxy em um
>>>> > >>>>>> local aonde não possua mais contexto persistente. Dá uma caçada
>>>> às bruxas ae
>>>> > >>>>>> mano.
>>>> > >>>>>> Abraços
>>>> >
>>>> > >>>>>> Rafael Mauricio Nami
>>>> >
>>>> > >>>>>> 2008/11/4 LeonardoW <[EMAIL PROTECTED]>
>>>> >
>>>> > >>>>>>> Bom acho que vou abandonar esse fw....
>>>> > >>>>>>> Porque justamente não quero carregar todos os mapeamentos, o
>>>> que
>>>> > >>>>>>> onera
>>>> > >>>>>>> as consultas na base...
>>>> > >>>>>>> E se fosse para carregar tudo, eu poderia fazer direto pelas
>>>> > >>>>>>> configurações do hibernate!
>>>> > >>>>>>> Me corrija se eu estiver errado...Melhor deixar do jeito que
>>>> está...
>>>> > >>>>>>> Tem como não lançar a exceção de lazy loading?
>>>> > >>>>>>> Vlw
>>>> >
>>>> > >>>>>>> On 3 nov, 19:37, "Rafael Nami" <[EMAIL PROTECTED]> wrote:
>>>> > >>>>>>> > Fala Leo, beleza?Seguinte mano, eu já testei essa
>>>> biblioteca, e já
>>>> > >>>>>>> olhei o
>>>> > >>>>>>> > código fonte, faz uns treco bizarro (tipo, colocar chamadas
>>>> a
>>>> > >>>>>>> remoteObject
>>>> > >>>>>>> > para chamar um "contexto persistente extendido" aonde tem
>>>> > >>>>>>> HibernateProxy).
>>>> > >>>>>>> > Ou seja, ele propaga o contexto de persistência para o
>>>> servlet
>>>> > >>>>>>> filter que o
>>>> > >>>>>>> > dpHibernate configura (lembra da tabajarisse do
>>>> > >>>>>>> OpenSessionInViewFilter?).
>>>> > >>>>>>> > Alem do mais, até aonde vi, é necessário fazer tanto seus
>>>> beans
>>>> > >>>>>>> java quanto
>>>> > >>>>>>> > os .as extenderem classes do framework, o que é muito
>>>> invasivo, no
>>>> > >>>>>>> que diz
>>>> > >>>>>>> > respeito à estruturas legadas Java (o que pode ser seu caso
>>>> :) ).
>>>> > >>>>>>> > A melhor solução é a que sempre falo - use o hibernate com
>>>> > >>>>>>> moderação :)
>>>> > >>>>>>> > Use e abuse de Projections e HQL construindo objetos e/ou
>>>> Maps, que
>>>> > >>>>>>> ae você
>>>> > >>>>>>> > que "controla" o select que será executado no banco. E
>>>> recupere
>>>> > >>>>>>> para a
>>>> > >>>>>>> > camada de visão algo que tenha significado apenas para a
>>>> camada de
>>>> > >>>>>>> > apresentação (aka - PresentationModels). Expor na camada
>>>> view
>>>> > >>>>>>> coisas de
>>>> > >>>>>>> > Hibernate, além de ser um problema de design, é algo que
>>>> pode
>>>> > >>>>>>> trazer
>>>> > >>>>>>> > problemas de performance.
>>>> >
>>>> > >>>>>>> > Aquele abraço
>>>> >
>>>> > >>>>>>> > Rafael Nami
>>>> >
>>>> > >>>>>>> > 2008/11/3 LeonardoW <[EMAIL PROTECTED]>
>>>> >
>>>> > >>>>>>> > > Olá pessoal,
>>>> > >>>>>>> > > estou começando a usar o dpHibernate para solucionar o
>>>> problema
>>>> > >>>>>>> de
>>>> > >>>>>>> > > lazy load e gostaria de saber se tem como fazer ele
>>>> funcionar com
>>>> > >>>>>>> o
>>>> > >>>>>>> > > hibernate.properties ao invez do hibernate.cfg.xml?
>>>> > >>>>>>> > > Outra questão, meus objetos .as e .java tem que
>>>> obrigatoriamente
>>>> > >>>>>>> > > extender as classes hibernatebean e hiberanteProxy? Pois a
>>>> > >>>>>>> princípio
>>>> > >>>>>>> > > apenas configurei o web.xml e o remote-config.xml + as
>>>> > >>>>>>> bibliotecas
>>>> > >>>>>>> > > necessárias e ele parou de gerar erro de lazy.... Só não
>>>> afirmo
>>>> > >>>>>>> isso
>>>> > >>>>>>> > > com 100% de certeza, pois ainda não está funfando 100%.
>>>> > >>>>>>> > > Vou fazer alguns testes aqui...
>>>> > >>>>>>> > > []´s
>>>> >
>>>> > >>>> --
>>>> > >>>> Mário de Souza Júnior
>>>> > >>>> Programador Java / Adobe Flex
>>>> > >>>> (44) 4009-3550 Maringá-PR
>>>> > >>>>http://blog.mariojunior.com
>>>> > >>>> [EMAIL PROTECTED] (gtalk, msn, etc..)
>>>>
>>>>
>>>
>>>
>>>
>>
>>
>>
>
>
> --
> Mário de Souza Júnior
> Programador Java / Adobe Flex
> (44) 4009-3550 Maringá-PR
> http://blog.mariojunior.com
> [EMAIL PROTECTED] (gtalk, msn, etc..)
>
>
> >
>


-- 
Pedro Gonçalves
031-8802-7908 / 31-3241-1831
[EMAIL PROTECTED]
http://izap.com.br

-------
Neo Framework
Framework web j2ee
www.neoframework.org

--~--~---------~--~----~------------~-------~--~----~
Você recebeu esta mensagem porque está inscrito na lista "flexdev"
Para enviar uma mensagem, envie um e-mail para [email protected]
Para sair da lista, envie um email em branco para [EMAIL PROTECTED]
Mais opções estão disponíveis em http://groups.google.com/group/flexdev
-~----------~----~----~----~------~----~------~--~---

Responder a