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

标签 java rest tomcat jersey

我有一个正在运行的 RESTful API,完全可以正常工作。我正在使用带有 JS 的 HTML 来访问我的 REST 方法,并使用 Jersey 和 Tomcat7 来托管它。这是代码:

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 的描述自动更改为“重新启动”,重新启动后,所有路由都更改为访问我的 REST 方法。为什么我改变@Path("/")类似于 @Path("/pessoa/*")没有任何反应,甚至保存所有项目、删除 Tomcat、创建另一个服务器并在其上发布。这条线重要吗?我在教程中看到过它并且从未改变过。 Jersey 是否使用这样的东西?

最佳答案

您是否尝试设置 @Path("/pessoa/") 而不是 @Path("/pessoa/*") 。我认为你不需要 * 因为只有 /pessoa/ 本身会匹配 /pessoa/pessoa/something

关于java - 为什么错误的路径注释不会使 Jersey 的 REST API 崩溃?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40979733/

相关文章:

java - HackerRank 上的道路和图书馆超时

java - 迭代器不返回 Jess servlet 应用程序的结果

javascript - jquery ajax错误未捕获RangeError : Maximum call stack size exceeded

用于多个域的 Tomcat - 如何在地址栏中保留域名?

tomcat - Puppet - 语法错误 'unpack_tomcat' ;预计 '}'

java - 如何去除HashSet中的重复项?

java - 无效要求或原则

php - file_get_contents ('php://input' ) 总是返回一个空字符串

azure - 有没有办法将多个 power bi api 请求合并到一个rest api 调用中?像批量请求以获得集体响应之类的东西?

java - Tomcat Java 错误