Daumantas created CXF-6299:
------------------------------
Summary: Providers registered in cxf bus are ignored.
Key: CXF-6299
URL: https://issues.apache.org/jira/browse/CXF-6299
Project: CXF
Issue Type: Bug
Components: JAX-RS
Affects Versions: 2.7.15, 2.7.8
Environment: JDK 1.7.0_55
Reporter: Daumantas
Providers list configured following
http://cxf.apache.org/docs/jaxrs-services-configuration.html documentation.
Bus object created with configuration and is being set to ProviderFactory, but
configured providers from bus are never used by ProviderFactory.
To fix problem following example can be used (updated existing initialization
method):
{code:title=AbstractJAXRSFactoryBean|language=java}
...
private static final Object BUS_PROVIDERS_ALL =
"org.apache.cxf.jaxrs.bus.providers";
...
protected ProviderFactory setupFactory(Endpoint ep) {
ProviderFactory factory = ProviderFactory.createInstance(getBus());
if (entityProviders != null) {
Map<String, Object> busProperties = getBus().getProperties();
List<?> busProviders =
(List<?>)busProperties.get(BUS_PROVIDERS_ALL);
if (busProviders != null) {
entityProviders.addAll(busProviders);
}
factory.setUserProviders(entityProviders);
}
setDataBindingProvider(factory, ep.getService());
factory.setBus(getBus());
factory.initProviders(serviceFactory.getRealClassResourceInfo());
if (schemaLocations != null) {
factory.setSchemaLocations(schemaLocations);
}
setBeanInfo(factory);
ep.put(ProviderFactory.class.getName(), factory);
getBus().setProperty(ProviderFactory.class.getName(), factory);
return factory;
}
...
{code}
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)