当我将Maven依赖项移除到Servlet API时,以下Guice Servlet配置不起作用:
filter("/*").through(TransactionFilter.class);
编译器告诉我:
cannot access javax.servlet.Filter
class file for javax.servlet.Filter not found
filter("/*").through(TransactionFilter.class);
有什么想法吗?
答案 0 :(得分:1)
删除Servlet API依赖项时,您期望发生什么? Guice Servlet依赖于Servlet API。
澄清编辑: Guice Servlet对Servlet API有provided
范围依赖性,因此在构建应用程序时,它的jar不会被拉入最终工件...... API类由运行时的应用程序服务器提供。因此,您必须自己在应用程序的POM中声明对Servlet API的依赖(最好在provided
范围内)以便使用它。但这确实最有意义,因为无论您是否使用Guice Servlet,都必须为您的应用程序声明Servlet
和Filter
。