Cri*_*riu 6 java jax-rs jaxb resteasy
我有这个界面:
@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;
}
Run Code Online (Sandbox Code Playgroud)
我已经实现了返回MultipartOutput的方法.我从Fiddler发布了一个xml查询,我收到的结果没有任何问题.
但我已经为同一个界面做了一个集成测试,我发送相同的对象,我把响应像:
final MultipartOutput multiPartOutput = getClient().query(getUserRestAuth(), 0, 25, null, null, null, instanceQuery);
Run Code Online (Sandbox Code Playgroud)
但是在这里,所以从集成测试中,我收到一个奇怪的错误:
无法找到内容类型为multipart/mixed的BorderBodyReader; boundary ="74c5b6b4-e820-452d-abea-4c56ffb514bb"并键入类org.jboss.resteasy.plugins.providers.multipart.MultipartOutput
任何人都有任何想法为什么只有在集成测试中我收到此错误?
PS:有些人会说我不发送application/xml作为ContentType而是发送multipart,这当然是假的,因为对象是用所需的@XmlRootElement等注释的,否则Fiddler的POST都不会起作用.
Cha*_*kar -1
尝试将此方法添加到您的测试类中。这将注册已在您的服务器上注册的默认内置提供程序。
@BeforeClass
public static void registerProviders() {
ResteasyProviderFactory providerFactory = ResteasyProviderFactory.getInstance();
RegisterBuiltin.register(providerFactory);
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
8349 次 |
| 最近记录: |