Я хочу использовать интерфейс только для рамки RestEasy, поскольку он намного чище и должен работать.Resteasy FrameWork POST не работает
Но у меня возникают проблемы с передачей параметров в рамках запроса POST.
Я нашел этот пример в документации:
@PUT
@Path("basic")
@Consumes("text/plain")
void putBasic(String body);
И ссылаться:
import org.jboss.resteasy.client.ProxyFactory;
// ...
// this initialization only needs to be done once per VM
RegisterBuiltin.register(ResteasyProviderFactory.getInstance());
SimpleClient client = ProxyFactory.create(SimpleClient.class, "http://localhost:8081");
client.putBasic("hello world");
Я попробовал следующее:
@POST
@Consumes(MediaType.TEXT_PLAIN)
@Path("http://localhost:8080/app/resource")
String postBasic(String body);
И вызывается:
RegisterBuiltin.register(ResteasyProviderFactory.getInstance());
RepoClient client = ProxyFactory.create(RepoClient.class, "");
client.postBasic("hi");
При печати параметров Map (и отладки) в методе вызываемого податчика doPost
параметры были пустыми. Я действительно не вижу разницы между моим подходом и документированным (отсюда: Resteasy interface example).
Итак, чтобы подвести итог, только с использованием декларации интерфейса и реализации прокси-сервера, как я могу отправлять параметры POST?
Решение: Как и ожидалось ... просто нужно было объявить потребление соответствующим образом с принятым параметром, и это работает ... проблема заключалась в вызове метода POST сервлета в другом сервлете.
Просто попробовал ... сервлет фактически вызван ... но не имеет параметров запроса –
Вы вызываете сервер в другом исполняемом файле? Обратите внимание, что вы создаете 'ProxyFactory' с * пустым * базовым URL-адресом, поэтому действительно ли он подключается через сеть (даже через loopback) к серверу? –
Я проверю, может ли быть вызов метода post внутри сервлета –