有没有人在Java EE应用程序中使用Restlet的TaskService(部署在Tomcat,GlassFish等中)?
使用它是否符合Java EE的规范?当服务器/容器维护线程池时,Restlet如何处理它,而不是违反不在容器管理的应用程序中实例化自己的线程的Java EE规范?
或者您是否被迫使用Spring和/或与CommonJ的WorkManger接口进行异步处理?
PS:FYI,TaskService基本上包装了Java 6的ExecutorService - 但建议不要在应用服务器上下文中使用它。但是,Restlet的Java EE版本似乎确实有这项服务,并且想知道如果使用它会违反Java EE规范,或者是严格禁止或者实际上是否可行或者是否应该回退到Spring / CommonJ
答案 0 :(得分:2)
从Servlet规范版本2.5中不太清楚,在servlet容器中禁止创建线程。参见章节“SRV.14.2.2 Web应用程序环境”,第151页:
这种类型的servlet容器必须支持查找此类对象和 在由servlet管理的线程上执行时对这些对象的调用 容器。这种类型的servlet容器应该支持这种行为 在开发人员创建的线程上执行,但目前不需要这样做 所以。这种要求将在本规范的下一版本中添加。 开发人员应注意,这取决于应用程序创建的此功能 不建议使用线程,因为它不可移植。
我将看一下Java EE规范。
祝你好运, 蒂埃里博伊洛