我试图让现有的EJB在新实现的JAX-RS服务中工作。
我的项目设置如下
root
ear
ejb
war
以下是在war项目中运行良好的传统JAX-WS代码...
@WebService
public class MyService {
@EJB
MyEJBLocal local;
...
}
我在EJB项目中添加了以下JAX-RS资源(很长一段时间,没有时间在战争中测试)...
@Stateless
@Path("test")
public class MyResource {
@EJB
MyEJBLocal local;
@GET
@Produces("text/plain")
public String getCount(){
//int count = local.getCount();
//TODO: remove below once above is working
return String.valueOf(20);
}
....
}
当我删除注释时,我得到一个空指针异常,因为local为null。我认为这是由于JAX-RS获取EJB映射的问题,因为我尝试创建初始上下文并传递JNDI名称而无法找到名称,所以我猜这就是发生的事情。
除了使用JAX-WS而不是JAX-RS之外,还有解决方法吗?