【问题标题】:Multiple prefixes in RestEasy configurationRestEasy 配置中的多个前缀
【发布时间】:2013-04-26 12:26:37
【问题描述】:

我正在使用 Jboss RestEasy Web 服务,我需要多个 url 来映射到该 Web 服务。有没有可能我可以为'resteasy.servlet.mapping.prefixconfigured

设置多个前缀

这是我在 web.xml 中的配置

 <servlet-name>REST Service</servlet-name>
      <servlet-class>org.jboss.resteasy.plugins.server.servlet.HttpServletDispatcher</servletclass>
      </servlet>

      <servlet-mapping>
        <servlet-name>REST Service</servlet-name>
        <url-pattern>/rest/*</url-pattern>
      </servlet-mapping>

      <servlet-mapping>
        <servlet-name>REST Service</servlet-name>
        <url-pattern>/service/*</url-pattern>
      </servlet-mapping> 

      <context-param>
        <param-name>resteasy.servlet.mapping.prefix</param-name>
        <param-value>/rest</param-value>
      </context-param>

我想要“/rest”和“/service”前缀的服务

【问题讨论】:

    标签: java jersey resteasy


    【解决方案1】:

    为了快速测试,我将您的 &lt;context-param&gt; 更改为 &lt;init-param&gt;&lt;servlet&gt; 中,在 RESTeasy 3.0.5 中它对我有用。

    因此,一种解决方法可能是定义两个具有相同配置且仅在&lt;init-param&gt;resteasy.servlet.mapping.prefix 值不同的servlet,并为它们定义两个映射。

    请注意,现在您有 两个 servlet,它们过着自己的生活(例如,单独的上下文和生命周期),这在某些情况下可能是不可接受的。

    更新: 也看看这个答案,类似于我的,虽然更详细(我自己没有尝试过):https://stackoverflow.com/a/25487574/283519

    【讨论】:

      【解决方案2】:

      @pwes 非常感谢! 我希望公开两个 RESTful 服务。 说 /api1 和 /api2 。 您的建议适用于 OP 想要的和我想要的。

      下面是每个servlet的配置方式:

      <servlet>
          <servlet-name>entity-manager</servlet-name>
          <servlet-class>
              org.jboss.resteasy.plugins.server.servlet.HttpServletDispatcher
          </servlet-class>
          <init-param>
              <param-name>resteasy.servlet.mapping.prefix</param-name>
              <param-value>/api1</param-value>
          </init-param>
      </servlet>
      

      第二个:

      <servlet>
          <servlet-name>entity-manager</servlet-name>
          <servlet-class>
              org.jboss.resteasy.plugins.server.servlet.HttpServletDispatcher
          </servlet-class>
          <init-param>
              <param-name>resteasy.servlet.mapping.prefix</param-name>
              <param-value>/api2</param-value>
          </init-param>
      </servlet>
      

      【讨论】:

      • 请不要添加“谢谢”作为答案。一旦你有足够的reputation,你就可以vote up questions and answers你觉得有帮助。
      • @MatthewGreen - 你的评论内容是正确的,我觉得这个答案实际上可以增加一些价值。有时,有一个确切如何使用某些代码的示例非常方便。
      • 我的目的不仅仅是感谢你。但是,如果其他人像我一样在配置多个 REST API 时遇到困难,我认为这个答案会有所帮助。由于“multiple services RESTEasy”在前 5 个结果中都有这个。
      猜你喜欢
      • 1970-01-01
      • 2015-08-16
      • 1970-01-01
      • 1970-01-01
      • 2014-01-30
      • 1970-01-01
      • 2020-12-26
      • 2020-07-24
      • 2012-02-12
      相关资源
      最近更新 更多