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