javax.ws.rs.NotAllowedException: метод HTTP 405 не разрешен - PullRequest
0 голосов
/ 14 декабря 2018

У меня 2 экземпляра Wildfly 14, запущенных на одном экземпляре Windows Server EC2.Один делает запрос другому:

List<Long> ids = ...
WebTarget target = client.target("http://localhost:8080/test");
boolean put = target.request().put(Entity.entity(ids, MediaType.APPLICATION_JSON), boolean.class);

Конечная точка на другом сервере:

@PUT
@Path("/test")
@Produces(MediaType.APPLICATION_JSON)
public boolean prepareGame(List<Long> ids) {
    return true;
}

Я получаю

17:30:05,640 ERROR [stderr] (EE-ManagedExecutorService-default-Thread-2) javax.ws.rs.NotAllowedException: HTTP 405 Method Not Allowed

17:30:05,641 ERROR [stderr] (EE-ManagedExecutorService-default-Thread-2)    at org.jboss.resteasy.resteasy-jaxrs@3.6.1.Final//org.jboss.resteasy.client.jaxrs.internal.ClientInvocation.handleErrorStatus(ClientInvocation.java:223)

17:30:05,641 ERROR [stderr] (EE-ManagedExecutorService-default-Thread-2)    at org.jboss.resteasy.resteasy-jaxrs@3.6.1.Final//org.jboss.resteasy.client.jaxrs.internal.ClientInvocation.extractResult(ClientInvocation.java:191)

17:30:05,641 ERROR [stderr] (EE-ManagedExecutorService-default-Thread-2)    at org.jboss.resteasy.resteasy-jaxrs@3.6.1.Final//org.jboss.resteasy.client.jaxrs.internal.ClientInvocation.invoke(ClientInvocation.java:463)

17:30:05,641 ERROR [stderr] (EE-ManagedExecutorService-default-Thread-2)    at org.jboss.resteasy.resteasy-jaxrs@3.6.1.Final//org.jboss.resteasy.client.jaxrs.internal.ClientInvocationBuilder.put(ClientInvocationBuilder.java:207)

(at the line: boolean put = target.request()... )

Когда я запускаюэто на моей локальной машине работает, так что я подозреваю, что проблема конфигурации, а не проблема кода, но я не знаю.

Экземпляр amazon разрешает весь исходящий трафик и весь входящий трафик TCP на 8080, где серверслушает (jboss.http.port:8080).Брандмауэр на машине также разрешает этот трафик.Я проверил, что трафик там принимается через отправку запроса с моего локального компьютера на удаленный сервер с client.target("http://x.x.x.x:8080/...");, где xxxx - публичный ip экземпляра.Проблем не было.

Что могло бы вызвать эту ошибку на экземпляре amazon, но не на моем локальном компьютере, поскольку адрес является localhost?

1 Ответ

0 голосов
/ 14 декабря 2018

Я только что нашел ответ: Startup Poller и Shutdown Poller были (в «Детекторах состояния сервера») были установлены на Management Service вместо Web Port.Я думаю, это происходит, когда для профиля Behavior profile / Server Adapter установлено значение Controlled By: Managment Operations вместо Filesystem and shell operations.

. Я не знаю, как работает поллер или почему он вызывает эту ошибку, ноэто было решение.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...