cxf-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Daumantas (JIRA)" <j...@apache.org>
Subject [jira] [Created] (CXF-6299) Providers registered in cxf bus are ignored.
Date Fri, 13 Mar 2015 12:39:38 GMT
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)

Mime
View raw message