У меня есть этот интерфейс:
@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. Я отправляю запрос xml от Скрипача, и я получаю результат без любой проблемы.
НО я сделал интеграционный тест на тот же интерфейс, я отправляю те же объекты, и я поместил ответ как:
final MultipartOutput multiPartOutput = getClient().query(getUserRestAuth(), 0, 25, null, null, null, instanceQuery);
Но здесь, таким образом, от интеграционных тестов, я получаю странную ошибку:
Не удалось найти MessageBodyReader типа контента многослойным/смешанным; граница = "74c5b6b4-e820-452d-abea-4c56ffb514bb" и класс типа org.jboss.resteasy.plugins.providers.multipart. MultipartOutput
У кого-либо есть какой-либо ideea, почему только в интеграционных тестах я получаю эту ошибку?
PS: Некоторые из Вас скажут, что я не посылаю заявление как ContentType, но многослойный, который, конечно, является ложью, потому что объекты аннотируются необходимым @XmlRootElement и т.д., otherways ни один, который POST от Скрипача работал бы.
Попробуйте добавить этот метод в ваш тестовый класс. Это зарегистрирует встроенные провайдеры по умолчанию, которые уже зарегистрированы на вашем сервере.
@BeforeClass
public static void registerProviders() {
ResteasyProviderFactory providerFactory = ResteasyProviderFactory.getInstance();
RegisterBuiltin.register(providerFactory);
}
Включено ли в путь к классам соответствующее расширение для многостраничного кодирования? (esteasy-multipart-provider).