users@jersey.java.net

Re: [Jersey] Jersey + Spring + Hibernate = LazyInitializationException

From: Mark Petrovic <mark_at_petrovic.org>
Date: Wed, 6 May 2009 07:49:11 -0700

Sorry, I do not, Fabio.

On May 6, 2009, at 7:46 AM, Fabio Oliveira wrote:

> Hi Mark!
>
> You are Absolutely Right, this solve my problem....;-) but I would
> like to use the OpenSessionInViewFilter and have the best the
> Hibernate can offer: transparency.
>
> Do you have experiences with that?
>
>
> Thanks!
>
> On Tue, May 5, 2009 at 5:47 PM, Mark Petrovic <mark_at_petrovic.org>
> wrote:
>> I may be answering a completely different question (in which case I
>> would be
>> Not Even Wrong), but does it help to annotate your entity class
>>
>> @Entity
>> @Proxy(lazy = false)
>> public class SomeClass implements java.io.Serializable {
>> ...
>> }
>>
>> This helps when the session closes, but you need data from the
>> object graph.
>>
>> On May 5, 2009, at 1:44 PM, Paul Sandoz wrote:
>>
>>> Hi Fábio,
>>>
>>> Does the following help:
>>>
>>>
>>> http://stackoverflow.com/questions/345705/hibernate-lazyinitializationexception-could-not-initialize-proxy
>>>
>>> I think the problem is that after the method is returned the
>>> transaction
>>> goes out of scope, but the object is lazily initialized after the
>>> method has
>>> returned.
>>>
>>> I often find that googling such exceptions can help:
>>>
>>>
>>> http://www.google.co.uk/search?hl=en&q=org.hibernate.LazyInitializationException%3A+could+not+initialize+proxy+-+no+Session&btnG=Google+Search&meta=&aq=f&oq=
>>>
>>> Paul.
>>>
>>> On May 5, 2009, at 10:35 PM, Fabio Oliveira wrote:
>>>
>>>> Hi list!
>>>>
>>>> Probably I'm doing something really stupid, but all day I'm
>>>> fighting
>>>> against the integration between Spring and Jersey and Hibernate.
>>>>
>>>> I'm trying to do the basic: to access some persistent classes using
>>>> a Restful architecture. But when I try to get a reference for
>>>> another
>>>> persistent class, Hibernate throws a LazyInitializationException.
>>>>
>>>> Example:
>>>>
>>>> public class Person {
>>>> private int id;
>>>> private String name;
>>>> private Address address;
>>>>
>>>> ... getters and setters ...
>>>> }
>>>>
>>>> public class Address {
>>>> private int id;
>>>> private String street
>>>> ... getters and setters ...
>>>> }
>>>>
>>>> @Path("/person")
>>>> @Component
>>>> @Scope("singleton")
>>>> @Produces({MediaType.APPLICATION_JSON, MediaType.TEXT_XML})
>>>> @Transactional
>>>> public class PersonResource {
>>>>
>>>> @Autowired
>>>> private RepositorioPapel personRepository;
>>>>
>>>> @Path("{id}")
>>>> @GET
>>>> public Person getPerson(@PathParam("id")
>>>> int id) {
>>>> Person p = personRepository.get(id);
>>>> if (p == null) {
>>>> throw new NotFoundException("Person not found");
>>>> }
>>>> return p;
>>>> }
>>>>
>>>> }
>>>>
>>>> My web.xml:
>>>>
>>>> <web-app>
>>>> <display-name>Server</display-name>
>>>> <context-param>
>>>> <param-name>contextConfigLocation</param-name>
>>>> <param-value>/WEB-INF/applicationContext.xml</param-value>
>>>> </context-param>
>>>>
>>>> <filter>
>>>> <filter-name>hibernateFilter</filter-name>
>>>>
>>>>
>>>> <filter-
>>>> class
>>>> >
>>>> org
>>>> .springframework.orm.hibernate3.support.OpenSessionInViewFilter</
>>>> filter-class>
>>>> </filter>
>>>>
>>>> <filter-mapping>
>>>> <filter-name>hibernateFilter</filter-name>
>>>> <url-pattern>/resources/*</url-pattern>
>>>> </filter-mapping>
>>>>
>>>> <listener>
>>>>
>>>>
>>>> <listener-class>org.springframework.web.context.ContextLoaderListener
>>>> </listener-class>
>>>> </listener>
>>>> <servlet>
>>>> <servlet-name>Jersey Spring Web Application</servlet-name>
>>>>
>>>>
>>>> <servlet-
>>>> class>com.sun.jersey.spi.spring.container.servlet.SpringServlet</
>>>> servlet-class>
>>>> <load-on-startup>1</load-on-startup>
>>>> </servlet>
>>>> <servlet-mapping>
>>>> <servlet-name>Jersey Spring Web Application</servlet-name>
>>>> <url-pattern>/resources/*</url-pattern>
>>>> </servlet-mapping>
>>>> <welcome-file-list>
>>>> <welcome-file>index.html</welcome-file>
>>>> </welcome-file-list>
>>>> </web-app>
>>>>
>>>> As you can see, I'm trying to use the OpenSessionInViewFilter, but
>>>> always with the same result:
>>>>
>>>> org.hibernate.LazyInitializationException: could not initialize
>>>> proxy -
>>>> no Session
>>>>
>>>>
>>>> org
>>>> .hibernate
>>>> .proxy
>>>> .AbstractLazyInitializer.initialize(AbstractLazyInitializer.java:
>>>> 57)
>>>>
>>>>
>>>> org
>>>> .hibernate
>>>> .proxy
>>>> .AbstractLazyInitializer
>>>> .getImplementation(AbstractLazyInitializer.java:111)
>>>>
>>>>
>>>> org
>>>> .hibernate
>>>> .proxy
>>>> .pojo.cglib.CGLIBLazyInitializer.invoke(CGLIBLazyInitializer.java:
>>>> 150)
>>>> Address$$EnhancerByCGLIB$
>>>> $a03449c5.getStreet(&lt;generated&gt;)
>>>> Address
>>>>
>>>> $
>>>> JaxbAccessorM_getStreet_setStreet_java_lang_String
>>>> .get(MethodAccessor_Ref.java:52)
>>>> ...
>>>>
>>>>
>>>> Anyone already did something similar? Any clues?
>>>>
>>>> Thanks very much!
>>>>
>>>>
>>>> --
>>>>
>>>> Fábio Braga de Oliveira
>>>> ArchitecTeam Consulting
>>>> http://www.linkedin.com/in/fabiobragaoliveira
>>>> E-mail: fabio.braga_at_gmail.com
>>>>
>>>> ---------------------------------------------------------------------
>>>> To unsubscribe, e-mail: users-unsubscribe_at_jersey.dev.java.net
>>>> For additional commands, e-mail: users-help_at_jersey.dev.java.net
>>>>
>>>
>>>
>>> ---------------------------------------------------------------------
>>> To unsubscribe, e-mail: users-unsubscribe_at_jersey.dev.java.net
>>> For additional commands, e-mail: users-help_at_jersey.dev.java.net
>>>
>>
>> --
>> Mark Petrovic
>> mark_at_petrovic.org
>> http://www.petrovic.org
>>
>>
>>
>>
>>
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: users-unsubscribe_at_jersey.dev.java.net
>> For additional commands, e-mail: users-help_at_jersey.dev.java.net
>>
>>
>
>
>
> --
>
> Fábio Braga de Oliveira
> ArchitecTeam Consulting
> http://www.linkedin.com/in/fabiobragaoliveira
> E-mail: fabio.braga_at_gmail.com
> Mobile: +55 19 9270-6574
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscribe_at_jersey.dev.java.net
> For additional commands, e-mail: users-help_at_jersey.dev.java.net
>

--
Mark Petrovic
mark_at_petrovic.org
http://www.petrovic.org