【发布时间】:2015-07-04 12:46:17
【问题描述】:
我使用 jersey 和 spring 开发了一个宁静的 web 服务。
以下是通过接受登录对象列表来服务请求的服务方法。
服务类中的方法
@POST
@Path(value = "/login")
@Produces(MediaType.APPLICATION_XML)
public String getLogin(Login login);
@POST
@Path(value = "/update")
@Consumes(MediaType.APPLICATION_XML)
public void updatePassword(List<Login> userList)
登录类
@XmlRootElement
public class Login {
//some code
}
我正在使用 jersey 客户端来使用这个 web 服务,如下所示。
loginList = ArrayList of Login objects
Client client = Client.create();
WebResource webResource = client.resource("http://localhost:8080/user/update");
ClientResponse response = webResource.accept(MediaType.APPLICATION_XML).type(MediaType.APPLICATION_XML).post(ClientResponse.class, loginList);
但下面是我得到的例外。
原因:com.sun.jersey.api.client.ClientHandlerException:找不到 Java 类型、java.util.ArrayList 类和 MIME 媒体类型 application/xml 的消息正文编写器 在 com.sun.jersey.api.client.RequestWriter.writeRequestEntity(RequestWriter.java:288) 在 com.sun.jersey.client.urlconnection.URLConnectionClientHandler._invoke(URLConnectionClientHandler.java:204) 在 com.sun.jersey.client.urlconnection.URLConnectionClientHandler.handle(URLConnectionClientHandler.java:147)
但我的 /login 即 getLogin 方法运行良好。
我无法弄清楚究竟是什么导致了这个问题。
谁能帮我看看这可能是什么问题。
提前致谢。
【问题讨论】:
标签: java rest generics jersey jersey-client