我可以使用其他引用类库中的Java servlet Filter类吗?

时间:2013-06-18 15:23:50

标签: java java-ee servlets filter

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

我尝试在另一个名为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

2 个答案:

答案 0 :(得分:1)

请检查以下

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

答案 1 :(得分:0)

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

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

问候。