如果是这样,你怎么做?。
是的,听起来像是我的最后一个问题。它基本上是同一个问题。我有一个@javax.servlet.annotation.WebFilter
,直接打包成战时效果很好。现在我想将过滤器移到库中。但如果我这样做,就不会再打电话了。
我必须注意的任何陷阱,或者这根本不可能?
答案 0 :(得分:3)
设置<web-app metadata-complete="false">
。
这意味着此Web应用程序的元数据不仅限于此特定xml(以及webapp的类),还可以使用第三方库的元数据。
另请查看“网页片段”。您可以在jar的web-fragment.xml
中定义META-INF
,并在那里映射所有servlet和过滤器。
答案 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
具有相似的技术。