0 Replies Latest reply on May 27, 2013 9:27 AM by Abdelmajid LEADER

    Resteasy JPA problem

    Abdelmajid LEADER Newbie

      Hello, please I need your help


      I'm working in my jboss entreprise project with JPA EJB and Jboss AS 7.0.2 as my server runtime.


      Well I'm new in rest and I don't know how I can do the thing with JPA, this is my the entity that I want lunch a list of  as ressource:



      package model;
      import java.io.Serializable;
      import javax.persistence.*;
      import java.util.List;
       * The persistent class for the agence database table.
      public class Agence implements Serializable {
          private static final long serialVersionUID = 1L;
          private int id;
          private String adresse;
          private String agence;
          private String fax;
          private String tel;
          private String ville;
          //bi-directional many-to-one association to Banque
          private Banque banque;
          //bi-directional many-to-one association to Salarie
          private List<Salarie> salaries;
          //bi-directional many-to-one association to Societe
          private List<Societe> societes;
          public Agence() {
          public int getId() {
              return this.id;
          public void setId(int id) {
              this.id = id;
          public String getAdresse() {
              return this.adresse;
          public void setAdresse(String adresse) {
              this.adresse = adresse;
          public String getAgence() {
              return this.agence;
          public void setAgence(String agence) {
              this.agence = agence;
          public String getFax() {
              return this.fax;
          public void setFax(String fax) {
              this.fax = fax;
          public String getTel() {
              return this.tel;
          public void setTel(String tel) {
              this.tel = tel;
          public String getVille() {
              return this.ville;
          public void setVille(String ville) {
              this.ville = ville;
          public Banque getBanque() {
              return this.banque;
          public void setBanque(Banque banque) {
              this.banque = banque;
          public List<Salarie> getSalaries() {
              return this.salaries;
          public void setSalaries(List<Salarie> salaries) {
              this.salaries = salaries;
          public List<Societe> getSocietes() {
              return this.societes;
          public void setSocietes(List<Societe> societes) {
              this.societes = societes;


      and this is the ejb mb



      package ejb;
      import java.util.ArrayList;
      import javax.ejb.LocalBean;
      import javax.ejb.Stateful;
      import javax.persistence.EntityManager;
      import javax.persistence.PersistenceContext;
      import javax.persistence.PersistenceContextType;
      import model.Agence;
       * Session Bean implementation class ejbParameters
      public class ejbParameters implements ejbParametersRemote {
          @PersistenceContext(type = PersistenceContextType.EXTENDED)
            EntityManager em;
           * Default constructor. 
          public ejbParameters() {
          public ArrayList<Agence> allAgences() {
              ArrayList<Agence> societes = new ArrayList<Agence>();
              societes.addAll(em.createQuery("select a from Agence a").getResultList());
              return societes;
          public void addAgnece(Agence a) {
              // TODO Auto-generated method stub



      and this is the SW:



      package ejbrest;
      import java.util.ArrayList;
      import javax.ejb.EJB;
      import javax.ejb.LocalBean;
      import javax.ejb.Stateless;
      import javax.ws.rs.GET;
      import javax.ws.rs.POST;
      import javax.ws.rs.Path;
      import model.Agence;
      import ejb.ejbParametersRemote;
      public class ServicesWS {
          ejbParametersRemote ejb;
          public ArrayList<Agence> getCustomer() {
              return ejb.allAgences();


      when I access to the URL localhost:8080/myproject/ressources/agences as a result I get :



      [{"adresse":"Cartier Hassan II, Agadir","salaries":[],"tel":"05...........","ville":"Agadir","fax":null,"agence":"Agence Kettani","banque":{"nom":"Banque Populaire","agences":[{"adresse":"Cartier Hassan II, Agadir","salaries":[],"tel":"05...........","ville":"Agadir","fax":null,"agence":"Agence Kettani","banque":{"nom":"Banque Populaire","ag


      I have only one row in my table Agence, and it have a "many to one" relation with the table Banque and it looks like that the resteasy publichess an infinite cycle of jsons one row inside wich there is a banque wich has a number of agences(one to many) and etc.......



      I forgot to mention that it's only after changing the annotation @Stateless to @Statefull of the ejb that the error bellow  goes:



      LazyInitializationException: failed to lazily initialize a collection of role...................


      and also I tried to add the annotation @XMLRoot ... but nothing changed



      I appreciate your help