我正在使用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”前缀提供服务
答案 0 :(得分:5)
为了进行快速测试,我将<context-param>
更改为<init-param>
内的<servlet>
,并在RESTeasy 3.0.5中将其更改为我。
因此,解决方法可能是定义两个具有相同配置的servlet,并且仅在resteasy.servlet.mapping.prefix
的{{1}}值上有所不同,并为它们定义两个映射。
请注意,现在你有两个 servlet,它们过着自己的生活(例如单独的上下文和生命周期),这在某些情况下可能是不可接受的。
更新:另请看一下这个答案,类似于我的答案,虽然更详细(我自己没试过):https://stackoverflow.com/a/25487574/283519
答案 1 :(得分:1)
@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>