Tomcat 9 在运行时添加 webapi

问题描述 投票:0回答:1

不知道可不可以。当我创建一个 webapi 时,我必须在 web.xml 中声明相关的类/url

  <servlet-mapping>
        <servlet-name>myServlet</servlet-name>
        <url-pattern>/myServlet.htm</url-pattern>
        <!-- WebApi -->
        <url-pattern>/Timbrature2/*</url-pattern>
        <url-pattern>/Timbrature2.json/*</url-pattern>
        <url-pattern>/Timbrature2.xml/*</url-pattern>
        <url-pattern>/Timbrature/*</url-pattern>
        <url-pattern>/Timbrature.json/*</url-pattern>
        <url-pattern>/Timbrature.xml/*</url-pattern>
        <url-pattern>/TimbratureMobile/*</url-pattern>
        <url-pattern>/TimbratureMobile.json/*</url-pattern>
        <url-pattern>/TimbratureMobile.xml/*</url-pattern>
        <url-pattern>/$metadata</url-pattern>
    </servlet-mapping>

但是如果我的 webapp 从 jars 动态代码加载,我可以添加一个“新”类用作 REST 端点吗?

阅读 Apache 文档,尝试各种配置但没有任何效果

tomcat web.xml webapi tomcat9
1个回答
0
投票

如果你想让一个 servlet 处理所有事情,你可以将它注册到广泛的 URL 模式,比如

<url-pattern>/api/*</url-pattern>

值得阅读 Servlet 规范,特别是第 12.2 节(在规范的 4.0 版本中),其中涵盖了“映射规范”。这描述了可能的

url-mapping
的种类。

另一种选择是在您的代码中使用

@WebServlet
注释(在上述文档的第 8.1.1 节中介绍)以在您的代码中建立映射。我更喜欢
web.xml
中的声明性映射,因为所有映射都位于同一位置,而不是分布在源可能并不总是可用的任意源文件中。

© www.soinside.com 2019 - 2024. All rights reserved.