簡體   English   中英

如何在 RESTful Web 服務中正確使用 Java 上的 @Path 表示法

[英]How to properly use @Path notation on java in RESTful Web services

@GET
@Produces({MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON})
@Path("{idinst: [0-9]+ }/, { tipopersona}/")
public List<String> obtenCorreosDeInstitucion(@PathParam("idinst") long idinst,@PathParam("tipopersona") String tipo){
    List<String> resultado=new ArrayList<>();
    List<Persona> persona=obtenerPersona();
    int length=persona.size();
    int i=0;
    while(i<length){
        if(persona.get(i).getTipoPersona().equals(tipo)){
            if(persona.get(i).getIdInstitucionPersona()==idinst){
                resultado.add(persona.get(i).getEmailPersona());
            }
        }
        i++;
    }
    return resultado;
}

public List<Persona> obtenerPersona(){
    List<Persona> resultado=new ArrayList<>();
    try{
        Query q = em.createQuery("SELECT p FROM Persona p");
        Persona p = (Persona) q.getResultList();
        resultado= (List<Persona>) q.getResultList();
        System.out.println(resultado);

    }
    catch(NoResultException ex){

    }
    return resultado;
}

所以我有這樣的代碼,但是在測試中,它說 404 not found,但是這個類中的其他方法確實通過了測試,所以我假設我路徑中的某些東西是不正確的,有人可以指點我嗎正確的方向? 我在互聯網上搜索過,我只能找到當它只是從路徑中獲得的一個變量值時的示例。

嘗試以下操作(在我看來,您的@Path注釋中有額外的, ):

@GET
@Produces({MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON})
@Path("{idinst: [0-9]+ }/{tipopersona}/")
public List<String> obtenCorreosDeInstitucion(@PathParam("idinst") long idinst,@PathParam("tipopersona") String tipo){
    List<String> resultado=new ArrayList<>();
    List<Persona> persona=obtenerPersona();
    int length=persona.size();
    int i=0;
    while(i<length){
        if(persona.get(i).getTipoPersona().equals(tipo)){
            if(persona.get(i).getIdInstitucionPersona()==idinst){
                resultado.add(persona.get(i).getEmailPersona());
            }
        }
        i++;
    }
    return resultado;
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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