Я изучаю REST API и запускаю его на Tomcat Apache 7 на моей локальной машине.
Настройка:
- Tomcat Apache 7
- JAX-RS
- Java 8
У меня есть локальная база данных mysql, с которой взаимодействуют эти остальные API.
Я могу запустить метод GET с и без параметров, но когда я пытаюсь запустить метод PUT, я получаю метод 405, который не разрешен. Я исследовал ошибку и не могу найти проблемы, схожие с тем, с чем я сталкиваюсь.
Мой сервисный код:
@PUT
@Path("/users/status/{user_id}")
@Produces(MediaType.APPLICATION_JSON)
public int setInactive(@PathParam("user_id") int user_id) throws ClassNotFoundException{
return userDao.markInActive(user_id);
}
Этот API-интерфейс остальных обновляет поле в базе данных.
В журналах моего локального сервера tomcat нет связанных элементов в списке.
Я попытался добавить фильтр в файл. xml файл, и он не оказал никакого влияния.
<filter>
<filter-name>CorsFilter</filter-name>
<filter-class>org.apache.catalina.filters.CorsFilter</filter-class>
<init-param>
<param-name>cors.allowed.headers</param-name>
<param-value>Accept,Accept-Encoding,Accept-Language,Access-Control-Request-Method,Access-Control-Request-Headers,Authorization,Connection,Content-Type,Host,Origin,Referer,Token-Id,User-Agent, X-Requested-With</param-value>
</init-param>
<init-param>
<param-name>cors.allowed.origins</param-name>
<param-value>*</param-value>
</init-param>
<init-param>
<param-name>cors.allowed.methods</param-name>
<param-value>GET, POST, PUT, DELETE, OPTIONS, HEAD</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>CorsFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
Это ничего не изменило.
URL-адрес, который я использую:
http://localhost:8080/UserManagementTwo/rest/UserService/users/status/1
Не уверен, откуда go.
Любая помощь будет принята.
Спасибо.
@PUT был там, но не показывался.