SimpleXml과 함께 retrofit 2.0.0-beta1을 사용하고 있습니다. REST 서비스에서 단순 (XML) 리소스를 검색하고 싶습니다. SimpleXML로 Simple 개체를 마샬링 / 마샬링 해제하면 잘 작동합니다.
이 코드를 사용하는 경우 (2.0.0 이전 코드로 변환 된 형식) :
final Retrofit rest = new Retrofit.Builder()
.addConverterFactory(SimpleXmlConverterFactory.create())
.baseUrl(endpoint)
.build();
SimpleService service = rest.create(SimpleService.class);
LOG.info(service.getSimple("572642"));
서비스:
public interface SimpleService {
@GET("/simple/{id}")
Simple getSimple(@Path("id") String id);
}
이 예외가 발생합니다.
Exception in thread "main" java.lang.IllegalArgumentException: Unable to create call adapter for class example.Simple
for method SimpleService.getSimple
at retrofit.Utils.methodError(Utils.java:201)
at retrofit.MethodHandler.createCallAdapter(MethodHandler.java:51)
at retrofit.MethodHandler.create(MethodHandler.java:30)
at retrofit.Retrofit.loadMethodHandler(Retrofit.java:138)
at retrofit.Retrofit$1.invoke(Retrofit.java:127)
at com.sun.proxy.$Proxy0.getSimple(Unknown Source)
내가 무엇을 놓치고 있습니까? 반품 유형을 Call
작품으로 포장하는 것을 알고 있습니다. 그러나 서비스가 비즈니스 개체를 유형으로 반환하고 동기화 모드에서 작동하기를 원합니다.
최신 정보
추가 종속성을 추가하고 .addCallAdapterFactory(RxJavaCallAdapterFactory.create())
다른 답변에서 제안한 대로이 오류가 계속 발생합니다.
Caused by: java.lang.IllegalArgumentException: Could not locate call adapter for class simple.Simple. Tried:
* retrofit.RxJavaCallAdapterFactory
* retrofit.DefaultCallAdapter$1