【问题标题】:Rest Web Service deployment descriptor query javaRest Web Service部署描述符查询java
【发布时间】:2017-08-22 09:57:22
【问题描述】:

我正在努力实现 Rest web 服务,需要对部署描述符文件进行说明。下面是 web.xml 代码,我所理解的是,只要 url 包含 /webapi/ ,就会调用 ServletContainer 类。到目前为止,如果我错了,请纠正我。您能进一步告诉我属性参数名称和参数值的意义是什么。是不是param-value中提到的包作为参数传递给了ServletContainer类?

<?xml version="1.0" encoding="UTF-8"?>
<!-- This web.xml file is not required when using Servlet 3.0 container,
     see implementation details http://jersey.java.net/nonav/documentation/latest/jax-rs.html -->
<web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
    <servlet>
        <servlet-name>Jersey Web Application</servlet-name>
        <servlet-class>org.glassfish.jersey.servlet.ServletContainer</servlet-class>
        <init-param>
            <param-name>jersey.config.server.provider.packages</param-name>
            <param-value>org.xyz.ws.transporter</param-value>
        </init-param>
        <load-on-startup>1</load-on-startup>
    </servlet>
    <servlet-mapping>
        <servlet-name>Jersey Web Application</servlet-name>
        <url-pattern>/webapi/*</url-pattern>
    </servlet-mapping>
</web-app>

提前感谢您的帮助。

【问题讨论】:

    标签: java web-services rest servlets


    【解决方案1】:

    我的理解是,只要 url 包含 /webapi/,就会调用 ServletContainer 类。

    是的。

    你能告诉我属性param-name和param-value的意义是什么

    init-params 基本上只是 servlet/filter 可以用来配置自身的配置属性。

    在这里,您正在配置一个名为jersey.config.server.provider.packages 的特定属性,其值为org.xyz.ws.transporter。 Jersey 将使用此特定配置属性的值来设置包扫描。 Jersey 将扫描您指定的包(递归地)以查找带有 @Provider@Path 注释的类。这允许 Jersey 注册所有资源和提供程序类。

    【讨论】:

    • 谢谢 我现在已经很好理解了。 1 最终澄清 - 这里 ServletContainer 类被正确调用.. 但我无法找到 init-param 属性“jersey.config.server.provider.packages”在其源代码中的使用位置。这是供您参考的 ServletContainer 代码 - gist.github.com/anonymous/e30650c1db6e94ed8e205f4db35c314b
    • 它比 ServletContainer 更深入。初始化参数通过 ApplicationHandler 传递,它设置 ResourceConfig 和包。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-03-06
    • 2011-06-26
    • 2013-02-26
    相关资源
    最近更新 更多