找不到表单的正文编写器 & application/x-www-form-urlencoded
Body Writer not found for Form & application/x-www-form-urlencoded
我的构建路径上有 jersey-client-2.25.1,我知道它具有将 javax.ws.rs.core.Form 转换为 application/x-www-form-urlencoded 的默认提供程序。
但是对于这段代码:
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 class
I have jersey-client-2.25.1 on my build path
是的,但您没有使用它。您正在使用 Jersey 1.x 客户端。 ClientResposne,WebResource
,也就是球衣1.x。球衣(JAX-RS) 1、不支持javax.ws.rs.core.Form
。那就是一个JAX-RS2class。如果您确实 使用您的 Jersey 2 客户端,它就可以工作。
如果你想坚持使用 Jersey 1.x 客户端,那么(使用 application/x-www-form-urlencoded),它支持 com.sun.jersey.api.representation.Form
和 MultivaluedMap
我的构建路径上有 jersey-client-2.25.1,我知道它具有将 javax.ws.rs.core.Form 转换为 application/x-www-form-urlencoded 的默认提供程序。
但是对于这段代码:
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 classI have jersey-client-2.25.1 on my build path
是的,但您没有使用它。您正在使用 Jersey 1.x 客户端。 ClientResposne,WebResource
,也就是球衣1.x。球衣(JAX-RS) 1、不支持javax.ws.rs.core.Form
。那就是一个JAX-RS2class。如果您确实 使用您的 Jersey 2 客户端,它就可以工作。
如果你想坚持使用 Jersey 1.x 客户端,那么(使用 application/x-www-form-urlencoded),它支持 com.sun.jersey.api.representation.Form
和 MultivaluedMap