2016-11-11 5 views
-1

Я пытаюсь проверить следующий Java REST метод обработки с использованием cURL:Использование 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} часть в вашем URL запроса:

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

Вы должны переключить аннотацию к этому:

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

И на самом деле замените значения внутри URL-адреса запроса. Если вы добавите их с -d, они будут добавлены как данные с запросом, не замененным в URL-адресе.

И сделайте запрос GET вместо PUT, так как вы определили свой код.

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