maven - WebFilter Java8 和 Maven

标签 maven java-8 servlet-filters

我正在玩教程并有以下内容:

*maven 项目

<dependency>
    <groupId>javax</groupId>
    <artifactId>javaee-api</artifactId>
    <version>8.0</version>
    <scope>provided</scope>
</dependency>

*Docker Wildfly 10

FROM jboss/wildfly:10.1.0.Final

*Java 代码

@WebFilter(urlPatterns = "/*")
public class TokenFilter extends HttpFilter {...}

*当然还有错误:)

Caused by: java.lang.ClassNotFoundException: javax.servlet.http.HttpFilter from [Module "deployment.api.war:main" from Service Module Loader]

Maven 将 Java 8 标记为已提供,wildfly 应该有它。 我很确定我缺少 Maven 中的依赖项,但不确定是哪一个。 该软件的其他部分工作正常(REST 位)

有什么提示吗?

最佳答案

我认为问题是,您的 wildfly 版本比您指定的 java-ee 版本旧。 (java-ee 8比你的wildfly版本晚了1年发布。并且HttpFilter类从这个版本开始可用)

如果你删除它应该可以工作(除非发生一些依赖关系不一致。如果是这种情况你必须升级wildfly版本)

https://www.oracle.com/corporate/pressrelease/java-se-9-and-ee-8-092117.html

关于maven - WebFilter Java8 和 Maven,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48978420/

相关文章:

maven - 从 Nexus3 下载单个/最新 Assets (JAR)

java - 将 Artifact 部署到两个不同的远程存储库 - Maven?

java - 两个Eclipse项目之间的依赖关系: how to add one's classpath into second's?

lambda - 使用 collect 时的并发数据结构和并行流

Java 继承 : the strict default-abstract and default-default conflict rules

google-app-engine - 奇怪的 Java Servlet 过滤器映射行为

使用java配置的spring security自定义过滤器

java - 使用 maven : CXF + java2ws goal 从 java 生成 WSDL

java - 使用参数数组实例化对象列表

java - servlet 过滤器销毁方法是否可以由关闭 Hook 调用,或者是否有更好的解决方案?