Рейтинг:0

Тестирование Spring Boot API приводит к HTTP 405 (метод не разрешен) при PUT

флаг in

Я создал API, который я развернул на сервере Tomcat. Во время разработки я запускал приложение из Eclipse и тестировал конечную точку с помощью Postman. Из Eclipse приложение работает нормально. Я бы увидел, как мой бот (созданный с помощью Selenium WebDriver) запускается, попадает на целевые страницы, щелкает элементы сценария и завершает процесс.

Я изменил POM для создания файла WAR, который я вручную развернул с помощью страницы приложения Tomcat Manager. WAR развернута и работает нормально, насколько я могу судить. Я решил запустить тот же тест с помощью Postman; очевидно изменение «localhost» на фактический IP-адрес и порт. К сожалению, я получаю эту ошибку HTTP 405, и я не знаю, почему. Я предполагаю, что что-то нужно настроить в Tomcat, но я понятия не имею, что конкретно мне нужно сделать.

Я настроил Tomcat в соответствии с этим и до сих пор не повезло: http://www.codereye.com/2010/12/configure-tomcat-to-accept-http-put.html

флаг us
Нужна дополнительная информация об ошибке 405 - похоже, звонок неисправен. Сообщения вызова и ответа также помогут при отладке.
hfontanez avatar
флаг in
У меня нет больше подробностей, чтобы сообщить.
Рейтинг:0
флаг in

Tomcat по умолчанию не поддерживает команду HTTP PUT.

Мне пришлось настроить Tomcat, изменив файлы web.xml и tomcat-users.xml.

Изменения в файле web.xml

  1. Необходимо добавить только для чтения = ложь параметр
<init-param>
    <param-name>readonly</param-name>
    <param-value>false</param-value>
</init-param>
  1. Необходимо добавить ограничение безопасности для роли
<security-constraint>
    <web-resource-collection>
        <web-resource-name>Demo App</web-resource-name>
        <url-pattern>/*</url-pattern>
        <http-method>PUT</http-method>
    </web-resource-collection>
    <auth-constraint>
        <role-name>#####</role-name>
    </auth-constraint>
</security-constraint>

Изменения в файле tomcat-users.xml

  1. Необходимо добавить пользователя и роль, чтобы соответствовать добавленному ограничению безопасности.
<user name="#####" password="#####" roles="#####" />

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.