2016-07-06 1 views
0

Мне нужно сделать вызов REST для интерфейса. Для этого я использую следующий код:Форма JAX-RS в пределах Widfly

ClientConfig config = new ClientConfig(); 
Client client = ClientBuilder.newClient(config); 
Response res = client.target(url). 
    request(). 
    header("Authorization", "Basic " + basicAuthString). 
    buildPost(Entity.form(new Form("grant_type", "client_credentials"))). 
    invoke(); 

В отдельном приложении с JAX-RS, это работает, как ожидалось. Когда я использую этот код в Wildfly сервера приложений, я получаю следующее сообщение об ошибке:

20:16:15,186 ERROR [stderr] (default task-5) Caused by: 
javax.ws.rs.ProcessingException: RESTEASY003215: could not find writer for content-type application/x-www-form-urlencoded type: javax.ws.rs.core.Form 

Wildfly не знает, как обращаться с javax.ws.rs.core.Form, что создает Content-Type: application/x-www-form-urlencoded. Какую зависимость я пропускаю?

[EDIT: 2016-07-07]

Эта ошибка возникает для любых данных, я хочу отправить. Это бросает подобную ошибку:

ClientConfig config = new ClientConfig(); 
Client client = ClientBuilder.newClient(config); 
Response res = client.target(url). 
    request(). 
    post(Entity.entity("DATA", MediaType.TEXT_PLAIN)); 
+0

. Добавьте это в свой запрос или проверьте, какой тип контента он ожидает, и добавьте его в заголовок заголовка («Content-Type», «application/x-www-form-urlencoded») – Naruto

+0

Результаты с той же ошибкой. – Dennis

+0

Попробуйте добавить @Consumes ("application/x-www-form-urlencoded") в API, к которому он звонит – Naruto

ответ

0

Наконец, после того, как один день отладки: Удаление ClientConfig есть решение!

Client client = ClientBuilder.newClient(); 
Response res = client.target(url). 
    request(). 
    post(Entity.entity("DATA", MediaType.TEXT_PLAIN));