[英]Why wrong path annotation doesn't crash REST API with 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());
}
}
問題是,如果我將位於<url-pattern>/rest/*</url-pattern>
web.xml
更改為<url-pattern>/reste/*</url-pattern>
Tomcat的描述將自動更改為“重新啟動”,重新啟動后,所有路由都會更改為訪問我的REST方法。 為什么我將@Path("/")
更改為@Path("/pessoa/*")
東西,什么都沒發生,甚至保存所有項目,刪除Tomcat,創建另一個Server並在其上發布。 這行重要嗎? 我在教程中看到過它,而且從未改變。 澤西島會使用這樣的東西嗎?
您是否嘗試設置@Path(“ / pessoa /”)而不是@Path(“ / pessoa / *”) 。 我認為您不需要*,因為只有/ pessoa /本身可以同時匹配/ pessoa和/ pessoa / something
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.