2017-02-17 1 views
0

ビルドパスにjersey-client-2.25.1があり、javax.ws.rs.coreを変換するデフォルトのプロバイダがあります。フォームからアプリケーション/ x-www-form-urlencoded。フォーム&アプリケーション/ x-www-form-urlencodedのBody Writerが見つかりません

しかし、このコードのために:

private ClientResponse getResponse(Authorization authInstance, Form formData) { 
    return webResourceInstance.type(MediaType.APPLICATION_FORM_URLENCODED). 
     header("Authorization",encode(authInstance)). 
      post(ClientResponse.class, formData); 
} 

私は入れません:

com.sun.jersey.api.client.ClientHandlerException: com.sun.jersey.api.client.ClientHandlerException: A message body writer for Java type, class javax.ws.rs.core.Form, and MIME media type, application/x-www-form-urlencoded, was not found 
    at com.sun.jersey.client.urlconnection.URLConnectionClientHandler.handle(URLConnectionClientHandler.java:155) 

私はthisあたりとして含むMultiPartクラスを登録する必要はありません。

答えて

3

私は私のビルド・パス

うん上ジャージー-クライアント-2.25.1を持っていますが、あなたはそれを使用していません。あなたはJersey 1.xクライアントを使用しています。 ClientResposne,WebResource、ジャージー1.xです。 Jersey(JAX-RS)1は、javax.ws.rs.core.Formをサポートしていません。これはJAX-RS 2クラスです。 を実行すると、Jersey 2クライアントを使用すると動作します。

あなたは(アプリケーション/ x-www-form-urlencodedので)、その後、ジャージー1.xのクライアントに固執する場合、それはcom.sun.jersey.api.representation.FormMultivaluedMap

をサポートしています
関連する問題