【问题标题】:Could I use Java servlet Filter class from other referenced class library?我可以使用其他引用类库中的 Java servlet Filter 类吗?
【发布时间】:2013-06-14 21:33:42
【问题描述】:

我的项目中有五个 Web 应用程序,并且想要过滤 HTTP 请求,但我不想为每个 Web 应用程序编写一个 Filter 类,因为不会有特定于应用程序的行为。最实用的方法是什么?

我尝试在另一个名为MyClassLibrary 的类库中只创建一个Filter,但它不起作用。这个库中的其他类可以被 web 应用程序使用,所以我认为没有引用问题。

其中一个应用程序的web.xml 过滤器部分是:

<filter>
    <filter-name>SampleFilter</filter-name>
    <filter-class>MyClassLibrary.Filters.SampleFilter</filter-class>
</filter>
<filter-mapping>
    <filter-name>SampleFilter</filter-name>
    <url-pattern>/*</url-pattern>
</filter-mapping>

这会导致异常:

java.lang.ClassNotFoundException: MyClassLibrary.Filters.SampleFilter

平台:Windows、NetBeans、GlassFish

【问题讨论】:

  • 好的,当我从过滤器类标签中删除 MyClassLibrary 时,它起作用了。感谢您的回答。

标签: java jakarta-ee servlets filter


【解决方案1】:

请检查以下内容

  • 确保您的类编译时没有任何错误
  • 确保您部署的这些 Web 应用程序具有 对包含您的库的项目/jar 的引用
  • 从名字看来,SampleFilter 是一个内部类。如果是这样 在这种情况下,请确保 Filters 和 SampleFilter 是静态内部的 MyClassLibrary 的类并且没有 args 构造函数
  • MyClassLibrary 前面是否缺少包名?

【讨论】:

    【解决方案2】:

    如果异常是 ClassNotFoundException,这意味着您尚未在应用程序的类路径中设置类 MyClassLibrary。

    确保您的类 MyClassLibrary 是从此 web.xml 的应用程序引用的。

    问候。

    【讨论】:

      猜你喜欢
      • 2017-07-04
      • 1970-01-01
      • 2011-02-27
      • 2023-03-14
      • 2011-11-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多