ClasscastException : MyClass 无法转换为 javax.servlet.Filter
ClasscastException : MyClass cannot be cast to javax.servlet.Filter
我正在尝试设置身份验证过滤器。
我的过滤器class如下
public class AuthenticationFilter extends HttpServlet{
/**
*
*/
private static final long serialVersionUID = -7678740843612123432L;
public void destroy() {
// TODO Auto-generated method stub
}
///Other methods...
public void doFilter(HttpServletRequest request, HttpServletResponse response,
FilterChain chain) throws IOException, ServletException {
Map<String,String> map = getHeadersInfo(request);
chain.doFilter(request, response);
}
///Other methods.
对应的web.xml如下
<filter>
<filter-name>AuthFilter</filter-name>
<filter-class>com.mypackage.AuthenticationFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>AuthFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
经过搜索,我发现很多人遇到这个问题是因为 pom.xml
中的依赖项不正确。但我确保相应的 jar 具有 provided
范围。
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>3.0.1</version>
<scope>provided</scope>
<dependency>
<groupId>com.sun.jersey</groupId>
<artifactId>jersey-server</artifactId>
</dependency>
<dependency>
<groupId>com.sun.jersey</groupId>
<artifactId>jersey-servlet</artifactId>
</dependency>
<!-- Other dependencies-->
关于我可能做错了什么有什么想法吗? Links/suggestions 赞赏。
您的过滤器应该 implement
它声称的任何 Filter
界面,并且 而不是 extend HttpServlet
,除非您将这两个功能组合在一起合二为一 class,这不是个好主意。
我正在尝试设置身份验证过滤器。
我的过滤器class如下
public class AuthenticationFilter extends HttpServlet{
/**
*
*/
private static final long serialVersionUID = -7678740843612123432L;
public void destroy() {
// TODO Auto-generated method stub
}
///Other methods...
public void doFilter(HttpServletRequest request, HttpServletResponse response,
FilterChain chain) throws IOException, ServletException {
Map<String,String> map = getHeadersInfo(request);
chain.doFilter(request, response);
}
///Other methods.
对应的web.xml如下
<filter>
<filter-name>AuthFilter</filter-name>
<filter-class>com.mypackage.AuthenticationFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>AuthFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
经过搜索,我发现很多人遇到这个问题是因为 pom.xml
中的依赖项不正确。但我确保相应的 jar 具有 provided
范围。
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>3.0.1</version>
<scope>provided</scope>
<dependency>
<groupId>com.sun.jersey</groupId>
<artifactId>jersey-server</artifactId>
</dependency>
<dependency>
<groupId>com.sun.jersey</groupId>
<artifactId>jersey-servlet</artifactId>
</dependency>
<!-- Other dependencies-->
关于我可能做错了什么有什么想法吗? Links/suggestions 赞赏。
您的过滤器应该 implement
它声称的任何 Filter
界面,并且 而不是 extend HttpServlet
,除非您将这两个功能组合在一起合二为一 class,这不是个好主意。