2016-08-23 3 views
-1

Это мой метод JAX-RS Put. Здесь я использую несколько параметров.Метод JAX-RS Put с несколькими параметрами

@Path("/Add") 
public class AddJSONService { 
    @PUT 
    @Path("/deactivateAdd/{idAdd}/{activeStatus}") 
    @Consumes(MediaType.APPLICATION_JSON) 
    public void deactivateAdd(@PathParam("idAdd") int idAdd, @PathParam("activeStatus") boolean activeStatus) { 

     AddInterface addInterface = new AddTable(); 
     addInterface.deactivateAdd(idAdd, activeStatus); 
    } 

} 

Когда я запускаю этот метод, браузер приносит мне следующее сообщение.

Статус HTTP 405 - Метод не допускается.

Есть идеи по этому вопросу?

ОБНОВЛЕНО - idAllergy to idAdd.

+2

Каков URL, который вы пробовали? – sinu

+0

http: // localhost: 8080/Balance_Rest/rest/Add/deactivateAdd/3/false – Barrier

+2

Используйте клиента отдыха, такого как почтальон, вместо браузера. Через браузер вы делаете GET вместо PUT – sinu

ответ

0

@PathParam должен соответствовать параметрам пути. idAllergy ->idAdd

public void deactivateAdd(@PathParam("idAdd") int idSomething, @PathParam("activeStatus") boolean activeStatus)

+0

Извините за ошибку. Я обновляю свой пост, пожалуйста, посмотрите на него. – Barrier

0

Я думаю, что вы сделали ошибку с параметром idAdd.

Не могли бы вы попробовать с:

@Path("/Add") 
public class AddJSONService { 
    @PUT 
    @Path("/deactivateAdd/{idAdd}/{activeStatus}") 
    @Consumes(MediaType.APPLICATION_JSON) 
    public void deactivateAdd(@PathParam("idAdd") int idAdd, @PathParam("activeStatus") boolean activeStatus) { 

     AddInterface addInterface = new AddTable(); 
     addInterface.deactivateAdd(idAdd, activeStatus); 
    } 

} 

ОБНОВЛЕНО: Почему вы используете PUT вместо POST аннотацию в WebService? Если бы я хорошо понял, вы не делаете PUT в браузере, не так ли?

+0

Я собираюсь обновить таблицу Добавить в моей базе данных. Поэтому я думаю, что PUT - лучший. Это нормально ? – Barrier

+2

Если вы не загружаете какие-либо файлы, я бы предпочел использовать Post. Как вы тестируете сервис с помощью Put? Вы используете какое-то расширение в своем браузере? Не могли бы вы опубликовать это? – pianista

+0

На самом деле я не использую расширение в своем браузере. – Barrier

3

Если вы не используете настраиваемый плагин для браузера, например. Postman, браузер всегда будет делать HTTP GET при вводе URL-адреса. Ваш метод указан для принятия только запросов PUT, и поэтому запрос отклоняется.

+0

С информацией, которую вы предоставили до сих пор, это, вероятно, причина. Вы не можете делать PUT прямо из браузера. И если вы не создадите HTML-форму, вы тоже не сможете делать POST. Если вы просто набираете URL-адрес или нажимаете закладку, это GET, который ваш сервис не поддерживает. – dbreaux

Смежные вопросы