0 Replies Latest reply on Jun 4, 2013 7:52 AM by haso

    Cant inject Bean class into Restfull WebService (JAX-RS)

    haso

      I'm trying to save data acquired by Rest web service to database using hibernate/persistence.

      In one of my web modules i implemented that service. Database ejb connector is placed in EJB module. They are parts of EAR application.

      Every time when i call pb.addDevice() im getting  java.lang.NullPointerException when puting proper url with params in browser(worked till i wanted to save it to Database). Can't find what is wrong with it. I'm using jboss 6.1.0 Final.

       

      PS. when i changed from

       

          @EJB

          PersistenceBean pb;

      to

       

          PersistenceBean pb = new PersistenceBean();

       

      i got null pointer on  EntityManager em = emf.createEntityManager();

       

      code:

       

       

          @Stateless

          @Path("/RestService")

          public class RestPush  {

         

          @EJB

          PersistenceBean pb;

         

              @GET

                @Path("/RegisterDevice")

              public void registerDevice(

                  @QueryParam("deviceId") String deviceId){

                           

                  Device d = new Device(true);

                  d.setId = deviceId;

                  pb.addDevice(d);

              }

          }

       

       

      and EJB class:

       

          @Stateless(mappedName = "PersistenceBean")

          public class PersistenceBean {

          @PersistenceUnit(unitName = "PersistentUnitName")

          EntityManagerFactory emf;

         

          private void persist(Object o, EntityManager entityManager) {

              try {

                  entityManager.persist(o);

              } catch (Exception e) {

                  logger.severe("Error writing to DB: " + e);

                  logger.severe("" + e.fillInStackTrace());

              }

          }

            public void addDevice(Device d) {

              try {

                  EntityManager em = emf.createEntityManager();

              if (persist(device, em)) {

                      logger.info("Device with id : " + device.getId()

                              + " has been added ");

          } else {

                      logger.info("Failed to add device with id: " + device.getId());

          } catch (Exception e) {

                  logger.severe("PersistenceBean: Could not save device.");

                  e.printStackTrace();

          }

       

          }