Ссылка: https://www.ibm.com/support/knowledgecenter/en/SSAW57_9.0.0/com.ibm.websphere.nd.multiplatform.doc/ae/twbs_jaxrs_xmlcontent_jaxb.html
У меня проблемы с поиском того, находится ли это в спецификации или нет, но позвольте мне сказать, что я хочу, чтобы клиент JAX-RS использовал пользовательский контекст JAXB, который я универсальноуправлять с помощью CDI:
@ApplicationScoped
public class JaxbContextResolver implements ContextResolver<JAXBContext> {
@Inject
private JAXBContext jaxbContext;
@Override
public JAXBContext getContext(Class<?> type) {
return jaxbContext;
}
}
код приложения:
@Inject
private JaxbContextResolver jaxbContextResolver;
public void test() {
Client client = ClientBuilder.newClient();
client.register(jaxbContextResolver);
client.target("https://example.com").request("application/xml").post(Enity.entity(payload, "application/xml"), Response.class);
}
У меня проблема в том, что клиент jax-rs никогда не вызывает мой метод jaxbContextResolver.getContext()
.Поддерживаются ли ContextResolver [s] на клиенте jax-rs или нет в спецификации?Я заметил, что CXF пытается использовать ContextResolver, но он не находит мой:
https://github.com/apache/cxf/blob/master/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/provider/AbstractJAXBProvider.java#L479