我很难确定这是否在规范中,但是可以说,我希望JAX-RS客户端使用我通常通过CDI管理的自定义JAXB上下文:
@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()
方法。 jax-rs客户端支持ContextResolver [s]还是在规范中不支持?我确实注意到CXF尝试使用ContextResolver,但找不到我的: