Olá Pessoal,
Tenho alguns serviços Rest operando normalmente, e resolvi fazer alguns testes automatizados; porém ocorreu um probleminha.
@Test
public void testeDandoErro() throws Exception {
ClientResponse<Areas> response = new ClientRequest(AREA_CONTEXT).accept(MediaType.APPLICATION_XML).get(Areas.class);
Assert.assertEquals(200, response.getStatus());
Areas areas = response.getEntity(Areas.class);
Assert.assertNotNull(areas);
Assert.assertNotNull(areas.getAreas());
}
org.jboss.resteasy.client.ClientResponseFailure: Unable to find a MessageBodyReader of content-type application/xml and type null
at org.jboss.resteasy.client.core.BaseClientResponse.createResponseFailure(BaseClientResponse.java:523)
at org.jboss.resteasy.client.core.BaseClientResponse.createResponseFailure(BaseClientResponse.java:514)
at org.jboss.resteasy.client.core.BaseClientResponse.readFrom(BaseClientResponse.java:415)
at org.jboss.resteasy.client.core.BaseClientResponse.getEntity(BaseClientResponse.java:377)
at org.jboss.resteasy.client.core.BaseClientResponse.getEntity(BaseClientResponse.java:350)
at AreaServiceIT.test(AreaServiceIT.java:34) ...
Note que isto só ocorre neste cenário de teste automatizado, quando executado manualmente, funciona normalmente tanto o marshal quanto o unmarshal pelo JAXB;
Segue a gambiarra que fiz onde funciona normalmente:@Test
public void testeFuncionando() throws Exception {
ClientResponse<String> response = new ClientRequest(AREA_CONTEXT).accept(MediaType.APPLICATION_XML).get(String.class);
Assert.assertEquals(200, response.getStatus());
Areas areas = JAXB.unmarshal(new StringReader(response.getEntity()),Areas.class);
Assert.assertNotNull(areas);
Assert.assertNotNull(areas.getAreas());
}
Alguém sabe dizer o porquê?
Mais informações:
Usando jboss as 7.1.1...<dependency>
<groupId>org.jboss.spec.javax.ws.rs</groupId>
<artifactId>jboss-jaxrs-api_1.1_spec</artifactId>
<scope>provided</scope>
<version>1.0.1.Final</version>
</dependency>
<dependency>
<groupId>org.jboss.resteasy</groupId>
<artifactId>resteasy-jaxrs</artifactId>
<version>2.3.2.Final</version>
<scope>test</scope>
</dependency>
Não vou postar as implementações porque tudo está funcionando normalmente, só nesse cenário de teste com a própria api do restEasy mesmo.