2013-06-18 32 views
4

我在我的项目中有五个Web应用程序,并且想过滤HTTP请求,但我不想为每个Web应用程序编写Filter类,因为不会有应用程序特定的行为。什么是最实际的方法来做到这一点?我可以使用其他引用类库中的Java servlet 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

+0

好的,当我从过滤器类标记中删除MyClassLibrary它的工作。感谢您的回答。 – electron

回答

1

请检查以下

  • 确保您的类是没有任何错误编译
  • 确保您的这些Web应用程序的部署是有 参考项目/包含您的库
  • 从罐子名称,它看起来像SampleFilter是一个内部类。如果是这样的话,请确保Filters和SampleFilter是内部静态的 类的MyClassLibrary并且没有参数构造函数
  • 您是否在MyClassLibrary前缺少包名?
0

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

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

问候。

相关问题