4

GET を介してパラメーターを REST メソッドに渡そうとしています。

@GET
@Path("{id}")
public Response getUser(@PathParam("id") String id) {
    Query qry = em.createQuery("from User c WHERE id = :user_id");
    qry.setParameter("user_id", id);
    List<User> results = qry.getResultList();

    if(results.size() > 0) {
        return Response.ok(results.get(0),MediaType.APPLICATION_JSON_TYPE).build();
    } else {
        return Response.serverError().status(Response.Status.NOT_FOUND).build();
    }
}

Rest Client を介して次のように呼び出す場合:

client = ClientBuilder.newClient();    
Response response = client.target(TestPortProvider.generateURL("/user")+"/abc").request().get(Response.class);

その後、メソッドが呼び出されますが、パラメーターは空です。"abc"GET URL からを削除すると、メソッドは呼び出されません。また、削除し@Path("{id}")ても機能しません。パラメータがあるように見えますが、理由もなく空です。誰かが問題を解決するのを手伝ってくれるかもしれません。

敬具

4

4 に答える 4

6

{}メソッド パラメータでは必須ではありません。名前を指定するだけです。次のことを試してください。

 public Response getUser(@PathParam("id") String id) 
于 2015-04-09T07:38:46.790 に答える