您可以将WebFilter打包到库中吗?

时间:2011-02-09 16:27:29

标签: jsp servlets annotations java-ee-6 servlet-filters

如果是这样,你怎么做?。

是的,听起来像是我的最后一个问题。它基本上是同一个问题。我有一个@javax.servlet.annotation.WebFilter,直接打包成战时效果很好。现在我想将过滤器移到库中。但如果我这样做,就不会再打电话了。

我必须注意的任何陷阱,或者这根本不可能?

2 个答案:

答案 0 :(得分:3)

设置<web-app metadata-complete="false">

这意味着此Web应用程序的元数据不仅限于此特定xml(以及webapp的类),还可以使用第三方库的元数据。

另请查看“网页片段”。您可以在jar的web-fragment.xml中定义META-INF,并在那里映射所有servlet和过滤器。

Take a look at this demo

答案 1 :(得分:1)

只需在JAR项目的web.xml文件夹中删除一个空的Servlet 3.0兼容/META-INF文件。

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
    xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
    id="yourProjectId" version="3.0">
</web-app>

默认情况下,Servlet 3.0容器会扫描JAR是否存在/META-INF/web.xml文件,如果存在,则扫描JAR中的所有类以获取Servlet 3.0注释。无需其他设置。

JSF 2.0与/META-INF/faces-config.xml具有相似的技术。