我有这个界面:
@Path("inbox")
public interface InboxQueryResourceTest {
@POST
@Path("{membershipExternalId}/query")
@Consumes(MediaType.APPLICATION_XML)
@Produces("multipart/mixed")
public MultipartOutput query(@PathParam("membershipExternalId") final String membershipExternalId,
@QueryParam("page") @DefaultValue("0") final int page,
@QueryParam("pageSize") @DefaultValue("10") final int pageSize,
@QueryParam("sortProperty") final List<String> sortPropertyList,
@QueryParam("sortReversed") final List<Boolean> sortReversed,
@QueryParam("sortType") final List<String> sortTypeString,
final InstanceQuery instanceQuery) throws IOException;
}
我已经实现了返回 MultipartOutput 的方法。我从 Fiddler 发布了一个 xml 查询,我收到了没有任何问题的结果。
但是我已经为同一个接口做了一个集成测试,我发送了相同的对象,我把响应放在:
final MultipartOutput multiPartOutput = getClient().query(getUserRestAuth(), 0, 25, null, null, null, instanceQuery);
但是在这里,从集成测试中,我收到一个奇怪的错误:
找不到内容类型 multipart/mixed;boundary="74c5b6b4-e820-452d-abea-4c56ffb514bb" 和类型类 org.jboss.resteasy.plugins.providers.multipart.MultipartOutput 的 MessageBodyReader
任何人都知道为什么仅在集成测试中我收到此错误?
PS:你们中的一些人会说我没有将 application/xml 作为 ContentType 而是 multipart 发送,这当然是错误的,因为对象是用所需的 @XmlRootElement 等注释的,否则来自 Fiddler 的 POST 都不起作用。