3 Replies Latest reply on Jul 15, 2013 7:06 AM by Jose Galiana

    Issue using RESTeasy 3.0.1 in JBoss AS 7.1.1

    Jose Galiana Newbie



      I'm developing a dynamic web application in JBoss AS7 using EJB3, JPA and RESTeasy with EXTjs. My model entities have several OneToMany relations, all of them marked with Fetch.LAZY in order to improve the application response. The problem was when the parent entity was going to send to browser as JSON code, RESTeasy tried to instantiate the collections were marked with Fetch.LAZY, raised an exception " org.hibernate.LazyInitializationException: failed to lazily initialize a collection of role: ..... no session or session was closed".


      After a lot of searching on Goole I found jackson-module-hibernate that does what I need, not instantiate lazy collections. Given that it need Jackson2, I downloaded RESTEasy 3.0.1 and unzip it into modules folder of JBoss 7.1.1, but it doesn't work with my code. More searching in Google and I put jboss-deployment-structure.xml excluding org.jboss.resteasy.resteasy-jackson-provider and declare a dependency of org.jboss.resteasy.resteasy-jackson2-provider, but also, it does not works.


      To not bore more, finally I must include all jackson2 dependencies in my pom.xml to put the libraries inside WEB-INF/lib folder (of course, maintaining the exclusion of org.jboss.resteasy.resteasy-jackson-provider) . It works!!! Now, when I call JSON Rest service, it returns me the code with all collections to null and do not try to instantiate them.


      After all this, I've seen that pom.xml declares a dependency of jackson-jasxrs-base that is not include into RESTeasy 3.0.1 modules. If I remove this library from my WEB-INF/lib folder, my application doesn´t work. So, it's possible there is an issue in RESTeasy 3.0.1.


      I write this because I´ve spent the last five days searching how to resolve the issue. I think that this solution can be helpful to everyone.