为什么错误的路径注释不会使 REST API 与 Jersey 崩溃?



我有一个运行的RESTFUL API完全可以与所有内容一起使用。我正在使用与JS的HTML一起使用Jersey和Tomcat7访问我的REST方法来托管它。这是代码:

package pact;
import java.io.IOException;
import java.util.List;
import javax.ws.rs.Consumes;
import javax.ws.rs.GET;
import javax.ws.rs.POST;
import javax.ws.rs.Path;
import javax.ws.rs.Produces;
import javax.ws.rs.core.MediaType;
import com.google.gson.Gson;
import repo.Pessoa;
import repo.Repo;
@Path("/")
public class Rest {
Gson gson = new Gson();
@POST
@Path("escreve")
@Consumes(MediaType.APPLICATION_JSON)
public void escreve(String dado) throws IOException {
    Pessoa pessoa = gson.fromJson(dado, Pessoa.class);
    Repo.escreve(pessoa);       
}
@GET
@Path("le")
@Produces(MediaType.APPLICATION_JSON)
public String le() {
    List<Pessoa> list = Repo.le();
    String json = gson.toJson(list);
    return json;
}
@POST
@Path("loja")
@Consumes(MediaType.APPLICATION_JSON)
public void loja(String dado){
    Repo.seleciona(gson.fromJson(dado, Pessoa.class));
}
@GET
@Path("lojale")
@Produces(MediaType.APPLICATION_JSON)
public String lojale() {
    return gson.toJson(Repo.retorna());
}

}

问题是,如果我将web.xml<url-pattern>/rest/*</url-pattern>上更改为<url-pattern>/reste/*</url-pattern> Tomcat的描述会自动更改为"重新启动",并且在重新启动后,将更改所有路由以访问我的休息方法。为什么我将@Path("/")更改为@Path("/pessoa/*")之类的东西,甚至没有任何事情都会发生,甚至保存所有项目,删除Tomcat,创建另一台服务器并在其上发布。这条线很重要吗?我在教程中看到了它,从未改变。泽西岛是否使用类似的东西?

您是否尝试过设置 @path("/pessoa/")而不是 @path("/pessoa/*")。我认为您不需要 *仅/pessoa/em>本身将匹配/pessoa /pessoa/pessoa/sometsing

最新更新