Клиент JAX-RS вызывает зарегистрированного ContextResolver [s]? - PullRequest
0 голосов
/ 26 октября 2018

Ссылка: 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

...