无法在 web.xml 中加载用户定义的过滤器:com.xxx.CORSFilter

我有一个在 WebLogic Server 版本上运行的 SpringBoot 应用程序:12.2.1.3.0 当我定义一个自定义 servlet 过滤器时,它在嵌入式 Tomcat 上运行良好。但是,当我将我的应用程序作为 war 文件部署到 wlserver 时,它会在每次请求后抛出以下错误。我在这里错过了什么?


    <Could not load user defined filter in web.xml: com.thy.bwsadmin.CORSFilter.

java.lang.AbstractMethodError

    at weblogic.servlet.internal.FilterManager$FilterInitAction.run(FilterManager.java:400)

    at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:328)

    at weblogic.security.service.SecurityManager.runAsForUserCode(SecurityManager.java:197)

    at weblogic.servlet.provider.WlsSecurityProvider.runAsForUserCode(WlsSecurityProvider.java:203)

这是我的 web.xml 文件的内容


<web-app xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

    xsi:schemaLocation="http://java.sun.com/xml/ns/javaee 

          http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"

    version="3.0">


    <display-name>MWSAdminService</display-name>


    <filter>

        <filter-name>CORSFilter</filter-name>

        <filter-class>com.sample.CORSFilter</filter-class>

    </filter>


    <filter-mapping>

        <filter-name>CORSFilter</filter-name>

        <url-pattern>/*</url-pattern>

    </filter-mapping>


</web-app>

我正在设置 servlet 依赖项以防止 jar 冲突。


        <dependency>

            <groupId>javax.servlet</groupId>

            <artifactId>javax.servlet-api</artifactId>

            <scope>provided</scope>

        </dependency>


慕的地6264312
浏览 132回答 1
1回答

青春有我

weblogic 提供的您的 servlet api 可能是旧版本,您的过滤器类需要覆盖 init 方法。在您的过滤器类中添加以下代码;@Override public&nbsp;void&nbsp;init(FilterConfig&nbsp;filterConfig)&nbsp;throws&nbsp;ServletException&nbsp;{};在新版本的 servlet api 中,过滤器类具有默认的空 init 方法。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java