2016-12-05 39 views
0

我有一個正在運行的RESTful API,可以正常工作。我使用帶有JS的HTML來訪問我的REST方法,使用Jersey和Tomcat7來託管它。這是代碼:爲什麼錯誤的路徑註釋不會使REST API與Jersey崩潰?

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,創建另一個服務器並在其上發佈。這條線是否重要?我在教程中看到它,從不改變。澤西使用這樣的東西嗎?

回答

0

你試過設置@Path( 「/佩索阿/」)的代替@Path( 「/佩索阿/ *」)。我認爲你不需要*僅/佩索阿/本身將同時匹配/佩索阿/佩索阿/東西

+0

的問題是,即使這樣做,錯了沒有真的發生了,我的老路子工作得很好。我的問題是爲什麼這種尷尬的行爲正在發生? – GabrielRado

+0

不知道。但是,值得嘗試使用正確的路徑註釋。也許它忽略了它,因爲它是錯誤的。嘗試改變例如** @ Path(「escreve」)**,是否正確註冊終結點? – kimy82

相關問題