簡體   English   中英

為什么錯誤的路徑注釋不會使Jersey崩潰REST API?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM