簡體   English   中英

為什么嵌套類不能用作Filter的類

[英]Why nested class can not be used as class for Filter

我正在嘗試將嵌套類設置為Filter類,但Intellij IDEA表示,當我嘗試在Web容器中運行此應用程序時,它無法找到此類也是如此:

<filter>
    <filter-name>test</filter-name>
    <filter-class>com.web.filters.SimpleFilter.NestedClassFilter</filter-class>
</filter>

和我正在嘗試使用的課程:

public class SimpleFilter implements Filter {
    public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {
        HttpServletRequest request = (HttpServletRequest) servletRequest;
        HttpServletResponse response = (HttpServletResponse) servletResponse;

        doFilter(request, response, filterChain);
    }

    protected void doFilter(HttpServletRequest request, HttpServletResponse response, FilterChain filterChain) throws ServletException, IOException{
    }

    public void init(FilterConfig filterConfig) throws ServletException {
    }

    public void destroy() {
    }

    public static class NestedClassFilter extends SimpleFilter {

        @Override
        protected void doFilter(HttpServletRequest request, HttpServletResponse response, FilterChain filterChain) throws ServletException, IOException {
            filterChain.doFilter(request, response);
        }
    }
}

我有的例外情況:

Caused By: java.lang.ClassNotFoundException: com.web.filters.SimpleFilter.NestedClassFilter
        at weblogic.utils.classloaders.GenericClassLoader.findLocalClass(GenericClassLoader.java:297)
        at weblogic.utils.classloaders.GenericClassLoader.findClass(GenericClassLoader.java:270)
        at weblogic.utils.classloaders.ChangeAwareClassLoader.findClass(ChangeAwareClassLoader.java:64)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:247)

因為你應該在這里使用完全限定的類名

<filter-class>com.web.filters.SimpleFilter.NestedClassFilter</filter-class>

你放的不是完全限定的類名。 它應該是

<filter-class>com.web.filters.SimpleFilter$NestedClassFilter</filter-class>

注意$

請參閱此處了解詳細原因。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM