我们可以在Jersey Web应用程序中的类中使用多个GET方法吗?

时间:2018-03-15 18:52:04

标签: java-ee routes jersey-2.0

我有以下代码

import javax.ws.rs.GET;
import javax.ws.rs.Path;
import javax.ws.rs.Produces;
import javax.ws.rs.core.MediaType;
import org.glassfish.jersey.server.mvc.Viewable;

@Path("/")
public class HomeController {
    @GET
    @Produces(MediaType.TEXT_HTML)
    @Path("/help")
    public Viewable help() {
        return new Viewable("/help");
    }

    @GET
    @Produces(MediaType.TEXT_HTML)
    @Path("/")
    public Viewable index() {
        return new Viewable("/index");
    }
}

并且web.xml具有以下映射

<servlet-mapping>
    <servlet-name>mysite</servlet-name>
    <url-pattern>/</url-pattern>
</servlet-mapping>

调用http://localhost:8080/mysitehttp://localhost:8080/mysite/help,两个请求都只路由到索引方法。我已将servlet- *标记更改为filter- *标记,并将url-pattern更改为/ *。但似乎没有任何效果。我无法路由到索引以外的任何页面。任何帮助表示赞赏。

1 个答案:

答案 0 :(得分:0)

你不需要方法的斜杠:

import javax.ws.rs.GET;
import javax.ws.rs.Path;
import javax.ws.rs.Produces;
import javax.ws.rs.core.MediaType;
import org.glassfish.jersey.server.mvc.Viewable;

@Path("/")
public class HomeController {
    @GET
    @Produces(MediaType.TEXT_HTML)
    @Path("help")
    public Viewable help() {
        return new Viewable("/help");
    }

    @GET
    @Produces(MediaType.TEXT_HTML)
    public Viewable index() {
        return new Viewable("/index");
    }
}