integrating GWT with CDI (Seam/Weld)下的问题没有受到太多关注,所以我第二次尝试。在服务器端,我想使用Weld / CDI(我现在正在使用Guice)。在Guice中,我有一个RemoteServiceServlet的子类,它在一个模块中命名,该模块本身在GuiceServletContextListener中被激活。是否有人编写了一些类来注册RemoteServiceServlet,以便GWT RPC端点从Weld获取实例?
答案 0 :(得分:0)
如果您使用CDI(作为EE6容器的一部分),您可以使用@WebServlet注释GWT RemoteServiceServlet,它们将是CDI bean。 @Inject将对它们起作用,甚至@PersistenceContext和@Resource以及其他东西,如果配置正确(EE服务器不需要任何配置,对于其他Web容器,请参阅Weld文档,它们需要在web.xml中配置一些侦听器) 。我多次使用这种架构。
你在另一个问题中提到的(“显然CDI不适用于从javax.servlet.Servlet派生的类。”)不应该再为真,正如评论者也指出的那样,它在1.1中已经修复。 / p>
我现在看到的唯一问题是,如果我尝试向我的@WebServlet添加拦截器,加载将失败,因为GWT RemoteServiceServlet声明了一些最终方法(getSerializationPolicy),因此它无法代理它。