我有一个SOAP WebService类,它注入了一个EJB,并且其中注入了一些其他类。像:
public class SuperWS {
@EJB
private SuperDaoEjb superDaoEjb;
@Inject
private Partner partnerComponent;
//......
public Response invoke(Request req) {
//Some logic
Thread t = new Thread(new SuperRunnable(superDaoEjb, partnerComponent));
t.start();
return req;
}
}
我必须做一些逻辑然后返回响应,但启动一个线程来处理更多。在那个线程中我需要superEjbDao和partnerComponent。但据我所知,这些对象是容器管理的。所以我不能说容器不会将代理提供给其他人或处置它。我觉得我的设计有问题。我该如何解决这个问题呢?
答案 0 :(得分:0)
我猜没有问题。这是必不可少的设计。只要确保SuperDaoEjb和合作伙伴都有线程安全的代码,你就可以了。您需要关心您将从Container for SuperDaoEjb和Partner获得哪些参考。