首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >找不到MessageBodyReader

找不到MessageBodyReader
EN

Stack Overflow用户
提问于 2010-03-11 13:49:17
回答 3查看 9.1K关注 0票数 6

我有这样的界面:

代码语言:javascript
复制
 @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查询,我收到的结果没有任何问题。

但是我已经对相同的接口进行了集成测试,我发送了相同的对象,并将响应如下:

代码语言:javascript
复制
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。

任何人都有任何ideea,为什么只有在集成测试中我才会收到这个错误?

PS:有些人会说我不是以ContentType的形式发送application/xml,而是发送多个部分,这当然是假的,因为对象是用所需的@XmlRootElement等注释的,而来自Fiddler的帖子则不起作用。

EN

回答 3

Stack Overflow用户

发布于 2012-04-09 14:20:02

你可以试试这个:

代码语言:javascript
复制
ResteasyProviderFactory providerFactory = ResteasyProviderFactory.getInstance();
providerFactory.registerProvider(org.jboss.resteasy.plugins.providers.multipart.MimeMultipartProvider.class);
票数 1
EN

Stack Overflow用户

发布于 2010-03-24 17:33:04

在类路径中是否包含用于多部分编码的相应resteasy?(尊重-多部分供应商)。

票数 0
EN

Stack Overflow用户

发布于 2010-03-12 08:51:46

尝试将此方法添加到测试类中。这将注册已在服务器上注册的默认内置提供程序。

代码语言:javascript
复制
@BeforeClass
public static void registerProviders() {
    ResteasyProviderFactory providerFactory = ResteasyProviderFactory.getInstance();
    RegisterBuiltin.register(providerFactory);
}
票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2425369

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档