1

有没有人在 Java EE 应用程序(部署在 Tomcat、GlassFish 等)中使用过 Restlet 的 TaskService?

使用它是否违反了 Java EE 的规范?当服务器/容器维护线程池并且不违反 Java EE 规范,即不在容器管理的应用程序中实例化您自己的线程时,Restlet 如何处理它?

或者您是否被迫使用 Spring 和/或与 CommonJ 的 WorkManger 接口进行异步处理?

PS:仅供参考,TaskService 基本上包装了 Java 6 的 ExecutorService - 但建议不要在应用程序服务器上下文中使用它。然而,Java EE 版本的 Restlet 似乎确实有这项服务,并且想知道使用它是否会违反 Java EE 规范或者是一个严格的禁忌或者实际上是可行的,或者应该回退到 Spring/CommonJ

4

1 回答 1

2

从 Servlet 规范 2.5 版来看,在 servlet 容器内禁止创建线程并不是很清楚。参见章节“SRV.14.2.2 Web 应用程序环境”,第 151 页:

当在由 servlet 容器管理的线程上执行时,这种类型的 servlet 容器必须支持对此类对象的查找和对这些对象的调用。当在开发人员创建的线程上执行时,这种类型的 servlet 容器应该支持这种行为,但目前不需要这样做。这样的要求将在本规范的下一个版本中添加。开发人员需要注意的是,不建议依赖于应用程序创建的线程的此功能,因为它是不可移植的。

我将看一下 Java EE 规范。

最好的问候,蒂埃里·布瓦洛

于 2012-03-29T15:23:35.587 回答