首页 > 解决方案 > RestEasy 服务的多个前缀

问题描述

我的 RestEasy 项目中需要有多个前缀。同样,我在web.xml.

<servlet>
    <servlet-name>resteasy-servlet1</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>/rest1</param-value>
    </init-param>       
    <init-param>
        <param-name>resteasy.resources</param-name>
        <param-value>com.test.rs.TokenGenerator</param-value>
    </init-param>
</servlet>

<servlet>
    <servlet-name>resteasy-servlet2</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>/rest2</param-value>
    </init-param>       
    <init-param>
        <param-name>resteasy.resources</param-name>
        <param-value>com.test.rs.ResourceProvider</param-value>
    </init-param>
</servlet>

<servlet-mapping>
    <servlet-name>resteasy-servlet1</servlet-name>
    <url-pattern>/rest1/*</url-pattern>
</servlet-mapping>

<servlet-mapping>
    <servlet-name>resteasy-servlet2</servlet-name>
    <url-pattern>/rest2/*</url-pattern>
</servlet-mapping>

<filter>
    <filter-name>AuthFilter</filter-name>
    <filter-class>com.test.rs.filter.AuthFilter</filter-class>
</filter>
<filter-mapping>
    <filter-name>AuthFilter</filter-name>
    <url-pattern>/rest2/*</url-pattern>
</filter-mapping>

<listener>
    <listener-class>
        org.jboss.resteasy.plugins.server.servlet.ResteasyBootstrap</listener-class>
</listener>

在这个stackoverflow 帖子中定义了相同的方法,但我还没有在我的项目中使用它。404 Not Found尝试访问以下 URL 时,我总是返回错误。谁能突出我在配置中缺少的内容?

http://localhost:8080/rstest/rest1/token

http://localhost:8080/rstest/rest2/resource

部署的项目的 Web 上下文根是rstest

我的班级有@Path如下定义的注释

@Path("/token")
public class TokenGenerator {

标签: javarestjax-rsresteasy

解决方案


推荐阅读