@EJB and @PersistenceContext not working in JBOSS.5.1.0.GA?
reena_jacob Oct 25, 2012 2:14 AMI am implementing a Rest Webservice Using RESTEasy and JPA for persistance and deploying in JBOSS.5.1.0.GA. JPA is working fine when we are getting EMF and EM programatically
emf = Persistence.createEntityManagerFactory(Constants.GTL_ORACLE_PERSISTENCE_UNIT);
em = emf.createEntityManager();
But when I tried to inject EntityManager using @PersistenceContext . I am getting null value.
Now we tried it using @Stateless EJB but that too failed in our service class.
Our Service class is as follows:-
public class ProductResourceService implements ProductResource {
private boolean oneTime = false; @EJB(mappedName = "MyService")
private PersistanceService persistanceService;
@Override public String saveProduct(@PathParam("id") String id){
System.out.println("requset got id[" + id + "]");
Product product = new Product();
product.setName(id);
product.setDescription("testing Persistance");
String status = "Failed";
try { System.out.println("persistanceService " + persistanceService);
persistanceService.saveObject(product);
status = "Success"; }
catch (Exception e) {
System.out.println("Error" + e);
} return status;
}PersistanceService
.java
-------------------------------------------
@Local(PersistanceServiceLocal.class)
@Stateless(mappedName = "MyService")
public class PersistanceService implements PersistanceServiceLocal {
private EntityManager em; @PersistenceContext public void setEm(EntityManager em) {
this.em = em;
}
public void saveObject(Object obj) {
try {
em.getTransaction().begin(); em.persist(obj);
em.getTransaction().commit();
}
finally {
em.close();
}
}
public Object getSingleResultSet(String namedQuery) {
Query query = null;
try { query = em.createNamedQuery(namedQuery); }
finally {
em.close();
}
if (query == null) {
return null;
}
return query.getSingleResult();
}
I have persistence.xml configured in this way.<persistence version="1.0" xmlns="http://java.sun.com/xml/ns/persistence" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_1_0.xsd">
<persistence-unit name="productDetails" transaction-type="JTA" >
<provider>org.hibernate.ejb.HibernatePersistence</provider>
<jta-data-source>java:/OracleDS</jta-data-source>
<class>com.gtl.cdi.rest.model.Product</class>
<properties>
<property name="hibernate.dialect" value="org.hibernate.dialect.OracleDialect" />
<property name="hibernate.hbm2ddl.auto" value="create-drop" />
</properties>
</persistence-unit>
Can anyone please tell me where I went wrong.I have been spending several days trying to resolve it....Is it that @PersistenceContext is not supported by JBOSS 5.1.0GA???
Any help will be greatly appreciated.