5

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

我尝试Filter在另一个名为的类库中只创建一个,MyClassLibrary但它不起作用。这个库中的其他类可以被 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

4

2 回答 2

1

请检查以下内容

  • 确保你的类编译没有任何错误
  • 确保您对这些 Web 应用程序的部署引用了包含您的库的项目/jar
  • 从名字上看,SampleFilter 似乎是一个内部类。如果是这种情况,请确保 Filters 和 SampleFilter 是 MyClassLibrary 的静态内部类并且没有 args 构造函数
  • 您是否在 MyClassLibrary 前面缺少包名称?
于 2013-06-18T15:53:12.020 回答
0

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

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

问候。

于 2013-06-18T15:31:19.530 回答