WebFilter Java8和Maven

问题描述 投票:2回答:1

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

* 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位)

任何提示?

maven java-8 servlet-filters
1个回答
2
投票

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

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

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

© www.soinside.com 2019 - 2024. All rights reserved.