2016-11-11 32 views
-1

我試圖測試使用cURL以下Java REST處理方法:在參數中使用cURL來調用Java REST方法--HTTP/1.1 500 java.lang.NullPointerException?

@GET 
    @Path("/application/façade/Id/{Id}/userName/{userName}/associatePerson") 
    public Response getInformationRelatingToUser(@PathParam("Id") String id, @PathParam("userName") String userName){ 

     //do stuff 
    } 

我很新的使用cURL

下面是我的cURL命令我用來測試這個,我知道port是絕對正確的。這個curl命令語法是否正確?

curl -X PUT -i -H "Accept: application/json" "localhost:9981/application/façade/Id/userName/associatePerson" -d "Id=testId" -d "userName=testUsername" 

當我運行命令,並在Intelij我收到以下錯誤看:

javax.ws.rs.NotFoundException: HTTP 404 Not Found 
ERROR o.g.j.server.ServerRuntime$Responder - Error occurred when processing a response created from an already mapped exception. 

並在Cywgin運行時cURL我得到如下回應:

HTTP/1.1 500 java.lang.NullPointerException 
Content-Length: 0 
Connection: keep-alive 

注:我正在使用的REST實現是JAX-RS

回答

0

@Path("/application/façade/Id/{Id}/userName/{userName}/associatePerson")

目前你缺少{Id}{userName}部分在您的查詢網址:

localhost:9981/application/façade/Id/{MISSING}/userName/{MISSING}/associatePerson

您應該將註釋切換到此:

@Path("/application/façade/{Id}/{userName}/associatePerson")

而實際上替換查詢網址中的值。如果您將它們添加爲-d,那麼它們將作爲數據添加到請求中,而不是在URL中替換。

並且做一個GET請求,而不是PUT,因爲這就是你定義你的代碼。

curl -X GET -i -H "Accept: application/json" "localhost:9981/application/façade/testId/testUsername/associatePerson"

相關問題