我试图让现有的 EJB 在新实现的 JAX-RS 服务中工作。
我的项目设置如下
root
ear
ejb
war
以下是在战争项目中运行良好的遗留 JAX-WS 代码......
@WebService
public class MyService {
@EJB
MyEJBLocal local;
...
}
我将以下 JAX-RS 资源添加到 EJB 项目中(长话短说,还没有时间在战争中进行测试)...
@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);
}
....
}
当我删除评论时,我得到一个空指针异常,因为本地为空。我认为这是由于 JAX-RS 获取 EJB 映射存在问题,因为我尝试创建初始上下文并传递 JNDI 名称,但找不到该名称,所以我猜这就是这里发生的事情。
除了使用 JAX-WS 而不是 JAX-RS 之外,还有其他解决方法吗?