可以将WebFilter打包到库中吗

发布于 2024-10-17 01:42:39 字数 189 浏览 2 评论 0 原文

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

是的,听起来像是我的最后一个问题。这本质上是同一个问题。我有一个 @javax.servlet.annotation.WebFilter ,当直接打包到 war 中时它可以正常工作。现在我想将过滤器移到库中。但如果我这样做,它就不会再被调用了。

我必须注意哪些陷阱还是根本不可能?

And if so how do you do it?.

Yes sounds like my last question. And it is essentially the same problem. I have a @javax.servlet.annotation.WebFilter which works fine when packaged directly into a war. Now I would like to move the filter in to a library. But if I do so it won't be called any more.

Any pitfalls I have to look out for or is it just plain impossible?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

不一样的天空 2024-10-24 01:42:39

设置

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

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

看看这个演示

Set <web-app metadata-complete="false">.

This means that the metadata for this web application is not limited to this particular xml (and the classes of the webapp), but can use metadata by 3rd party libraries.

Also take a look at "web fragments". You can define a web-fragment.xml in META-INF of your jar, and map all servlets and filters there.

Take a look at this demo.

清风无影 2024-10-24 01:42:39

只需将一个空的 Servlet 3.0 兼容的 web.xml 文件放入 JAR 项目的 /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 类似的技术。

Just drop an empty Servlet 3.0 compatible web.xml file in /META-INF folder of your JAR project.

<?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>

A Servlet 3.0 container will by default scan JARs for presence of /META-INF/web.xml file and when present, then scan all classes in the JAR for Servlet 3.0 annotations. No other settings are necessary.

JSF 2.0 has by the way a similar technique with /META-INF/faces-config.xml.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文