我有一个正在运行的 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/