JBoss 6 + Jax-RS + EJB
buchnerm Oct 25, 2010 8:16 AMHi
How can I inject an EJB in a Resteasy enabled bean? (JBoss 6.0 - M5)
The Rest Web Service works when I just return a static string!
The EJB I want to inject:
{code}
@Stateless
public class DAOService {
@PersistenceContext
private EntityManager em;/**
* Select of a single entry by id
* @param orderId
* @return selected order
*/
public JeeOrder getOrderByFind(long orderId) {
JeeOrder order = em.find(JeeOrder.class, orderId);
return order;
}
}
{code}
Here is my JAX-RS code:
Trying to inject via @EJB: (Result: The Web Service works but giving me a NullPointerException for daoService)
{code}
@RequestScoped
@Path("/getorder")
public class RestGetOrder {@EJB
public DAOService daoService;
@GET
@Produces("text/plain")
@Path("/byid/{orderid}")
public String getOrderById(@PathParam("orderid") long orderID) {
JeeOrder order = daoService.getOrderByFind(orderID);
String result = ""+
order.getOrderId()+", "+
order.getOrderNumber()+", "+
order.getOrderDate()+", "+
order.getOrderDeliveryDate()+", "+
order.getJeeCustomer().getCustFirstname()+" "+
order.getJeeCustomer().getCustLastname();
return result;
}{code}
I also tried lookup via initial context (Is the jndi name wrong??? -> also tried "java:DAOService" and "java:DAOService/no-interface")
The result is always an "Error NamingException DAOService not bound"
{code}
@RequestScoped
@Path("/getorder")
public class RestGetOrder {
@GET
@Produces("text/plain")
@Path("/byid/{orderid}")
public String getOrderById(@PathParam("orderid") long orderID) {
try {
LocalDAOServiceInterface daoService =(LocalDAOServiceInterface) new InitialContext()
.lookup("java:global/JeeOntecDemo/DAOService");
JeeOrder order = daoService.getOrderByFind(orderID);
String result = ""+
order.getOrderId()+", "+
order.getOrderNumber()+", "+
order.getOrderDate()+", "+
order.getOrderDeliveryDate()+", "+
order.getJeeCustomer().getCustFirstname()+" "+
order.getJeeCustomer().getCustLastname();
return result;
} catch (NamingException ex) {
System.out.println("Error NamingException"+ex.getMessage());
}
return "error";
}{code}
What do I have to do to get this working?
- Entries in web.xml?
- using @inject??
Please give a hint!