1

我正在使用 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”前缀提供服务

4

2 回答 2

5

为了进行快速测试,我将您更改<context-param><init-param>inside <servlet>,在 RESTeasy 3.0.5 中它对我有用。

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

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

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

于 2013-11-22T08:41:44.070 回答
1

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

以下是每个 serverlet 的配置方式:

<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>
于 2014-04-21T13:35:16.757 回答