【发布时间】:2012-11-02 17:39:13
【问题描述】:
在调用Java方法时,必须将新实例作为参数传递,这个新实例怎么可能是由CDI容器创建的?
在以下示例中:我正在向异步 servlet 上下文添加侦听器:
@WebServlet(value = "/example", asyncSupported = true)
public class ExampleServlet extends HttpServlet {
@Override
protected void doPost(final HttpServletRequest req,
final HttpServletResponse resp) throws ServletException,
IOException {
// ... some code
AsyncContext aCtx = req.startAsync(req, resp);
aCtx.addListener(**new AsyncListener()** {
// implementation of the async listener
});
// ...
}
}
因此,我希望它由 CDI 容器创建,而不是手动执行这个新的 AsyncListener() 实例化。
当然,我希望每个 aync 上下文都有自己的侦听器实例,否则我只会注入一个带有 @Inject 作为 servlet 类的字段的 AsyncListener。
目前,找不到任何方法来做到这一点。 有人有什么想法可以分享吗?
【问题讨论】:
标签: java jakarta-ee servlets asynchronous cdi