mt 나머지 웹 서비스에 액세스 할 수있는 간단한 Resteasy 클라이언트를 작성하려고합니다. 불행하게도 나는 오류를 얻고있다 :클라이언트가 예외를 throw하는 중임
Exception in thread "main" org.jboss.resteasy.client.ClientResponseFailure: Unable to find a MessageBodyReader of content-type application/json 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 org.jboss.resteasy.client.core.BaseClientResponse.getEntity(BaseClientResponse.java:344)
at com.test.client.rest.employee.EmployeeClient.main(EmployeeClient.java:29)
클라이언트 코드 :
ClientRequest request = new ClientRequest(ROOT_URL + "getEmp/GS");
ClientResponse<Employee> resp = request.get(Employee.class);
//Response resp = request.get();
if(resp.getResponseStatus().getStatusCode() == 200)
{
System.out.println("resp ok!!!");
}
Employee e = resp.getEntity(Employee.class);
System.out.println("path:" + e);
나머지 서비스 코드 :
@GET
@Path("getEmp/{name}")
@Produces("application/json")
public Employee getEmployee(@PathParam("name") String name)
{
if(em.containsKey(name))
return em.get(name);
else
throw new EmployeeNotFoundException("Employee with name '" + name + "' does not exists!");
}
클라이언트 코드 응답이 괜찮습니다. 즉 200입니다. Mozilla Rest 클라이언트에서 동일한 URL이 올바르게 작동합니다. 어떤 도움을 주시면 감사하겠습니다.
불행히도 나는 maven을 사용하지 않습니다. 나는 간단한 메인 클래스를 만들고 프로젝트의 빌드 경로에'resteasy-jackson-provider.2.3.2.Final.jar' 및'resteasy-jackson-provider.2.3.2.Final = jandex.jar'를 추가했습니다. 저는 JBOSS 집에서 가져 왔습니다. –
필요한 모든 항아리를 게시했습니다. 도움이되지 않으면이 게시물을 확인하십시오. http://stackoverflow.com/questions/12175564/unable-to-find-a-messagebodyreader-of-content-type-application -json-and-type-cla – mendieta
해답을 찾아 주셔서 대단히 감사드립니다. 그러나 방류 항아리가 범인이었다. 나는 그들을 추가했고 오류는 사라졌다. –