Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/366.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 找不到MessageBodyReader_Java_Jaxb_Jax Rs_Resteasy - Fatal编程技术网

Java 找不到MessageBodyReader

Java 找不到MessageBodyReader,java,jaxb,jax-rs,resteasy,Java,Jaxb,Jax Rs,Resteasy,我有这个界面: @Path("inbox") public interface InboxQueryResourceTest { @POST @Path("{membershipExternalId}/query") @Consumes(MediaType.APPLICATION_XML) @Produces("multipart/mixed") public MultipartOutput query(@PathParam("membershipEx

我有这个界面:

 @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;
}
但是在这里,从集成测试中,我收到了一个奇怪的错误:

找不到内容类型为multipart/mixed的MessageBodyReader;boundary=“74c5b6b4-e820-452d-abea-4c56ffb514bb”并键入类org.jboss.resteasy.plugins.providers.multipart.MultipartOutput

有人知道为什么只有在集成测试中我才会收到这个错误吗


PS:你们中的一些人会说我不是以ContentType而是multipart的形式发送application/xml,这当然是错误的,因为对象是用必需的@XmlRootElement等进行注释的,否则来自Fiddler的帖子都不起作用。

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

@BeforeClass
public static void registerProviders() {
    ResteasyProviderFactory providerFactory = ResteasyProviderFactory.getInstance();
    RegisterBuiltin.register(providerFactory);
}

类路径中是否包含用于多部分编码的相应resteasy插件?(esteasy多部分提供程序)。

您可以尝试以下方法:

ResteasyProviderFactory providerFactory = ResteasyProviderFactory.getInstance();
providerFactory.registerProvider(org.jboss.resteasy.plugins.providers.multipart.MimeMultipartProvider.class);

也在客户端类路径中?我相信这个错误是因为客户端resteasy代理没有注册MessageBodyReader来处理多部分/混合。如果您使用的是resteasy 1.2或更高版本,那么在resteasy版本
RegisterBuiltin的情况下,在客户端的类路径中包含前面提到的jar就足够了。在
ResteasyProviderFactory.getInstance()调用期间,默认情况下将调用register(providerFactory)
ResteasyProviderFactory providerFactory = ResteasyProviderFactory.getInstance();
providerFactory.registerProvider(org.jboss.resteasy.plugins.providers.multipart.MimeMultipartProvider.class);