У меня 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?