Apache Felix에서 DOSGI를 실행하려고합니다. CXF 3.2.0 번들 및 DOSGI 2.3.0을 사용합니다.DOSGI 사용자 지정 공급자 등록
서비스를 성공적으로 등록 할 수는 있지만 자원에 대한 전역 사용자 지정 공급자를 등록 할 수 없습니다.
@Path("")
public interface IToDoResource {
@GET
@Produces({MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML})
List<ToDo> getAllToDos();
@GET
@Path("{id}")
@Produces({MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML})
ToDo getToDoById(@PathParam("id") Long id);
...
}
다음에서 구현 : : 내 클래스에 대한 글로벌 사용자 지정 공급자를 등록하려고
@Component(//
name = "My.ToDoRestService", //
immediate = true, //
property = //
{ //
"service.exported.configs=org.apache.cxf.rs", //
"service.exported.interfaces=*", //
"org.apache.cxf.rs.address=/todos", //
} //
)
public class ToDoResource implements IToDoResource {
....
}
나는 인터페이스에 정의 된 자원을 가지고있다. "service.exported.intents"리소스에 속성을 사용하고 하나의 공급자에 대해 "IntentName" 공급자와 작업 할 수 있습니다.
이- 할일 XML 제공
- 할일 JSON 공급자가 이
- ArrayList를 XML 제공
- ArrayList를 JSON 공급자 또는
나는 또한 구현할 수 있습니다 그러나이 자원에 대해 나는 4 개 공급자를 등록 할 IntentsProvider이 리소스에 있으며 작동합니다.
그러나 작동하지 않습니다 다음 나는 로그에 이러한 유형의 오류에 대한 등록 된 업체 얻을 :/1 반환 왜 그렇게 빈 문서 및 로그에 8080/CXF/: 로컬 호스트에
@Component(//
name = "My.ToDoJsonProvider", //
immediate = true, //
service = MessageBodyWriter.class, //
property = {
"service.exported.configs=org.apache.cxf.rs", //
"org.apache.cxf.rs.provider=true", //
} //
)
@Provider
@Produces(MediaType.APPLICATION_JSON)
public class ToDoJsonProvider implements MessageBodyWriter<ToDo> {
GET을
을JAXRSUtils : 1834] 어떤 메시지 본문 작가가 클래스 my.todo.repository.api.ToDo, ContentType을 위해 발견되지 않은 : 응용 프로그램/XML
나는 그가 무엇을 그리워 전 세계 사용자 정의 공급자를 등록 하시겠습니까?