]
Alessio Soldano updated JBWS-3033:
----------------------------------
Fix Version/s: jbossws-cxf-3.3.0
Review JBossWSCXFConfigurer and enable to configure by bean name
support
-------------------------------------------------------------------------
Key: JBWS-3033
URL:
https://jira.jboss.org/browse/JBWS-3033
Project: JBoss Web Services
Issue Type: Task
Security Level: Public(Everyone can see)
Components: jbossws-cxf
Affects Versions: jbossws-cxf-3.3.0.CR2
Reporter: Jim Ma
Assignee: Jim Ma
Fix For: jbossws-cxf-3.3.0
CXF's ConfigurerImpl has the addApplicationContext(ApplicationContext ac) method to
update the Spring appllicationContext , when the bus loads new SpringBeans.
JBossWSCXFConfigurer delegates the configuration work to CXF's ConfigurerImpl and not
extend ConfigurerImpl .
In BusWiringBeanFactoryPostProcessor(invoked by JAXWSDefinitionParser when parse the
<jaxws:endpoint>), there is code to call the addApplicationContext only if the
Configuer instance is ConfiguerImpl:
public static void updateBusReferencesInContext(Bus bus, ApplicationContext ctx) {
Configurer conf = bus.getExtension(Configurer.class);
if (conf instanceof ConfigurerImpl) {
((ConfigurerImpl)conf).addApplicationContext(ctx);
}
}
So after set the JBossWSCXFConfigurer for the CXF configuer , the BusDeploymentAspect
fails to configure the logger interceptor to this endpoint in this sample:
<beans >
<!--Configure the logger interceptor by service name autowire-->
<bean
name="{http://ws.jboss.org/jaxws_samples}HelloService"
abstract="true">
<property name="inInterceptors">
<list>
<bean
class="org.apache.cxf.jaxws.LoggerInteceptor">
<constructor-arg value="service-in" />
</bean>
</list>
</property>
</bean>
<jaxws:endpoint
implementor='org.jboss.ws.jaxws.samples.EndpointImpl
transportId="http://cxf.apache.org/transports/jms">
</jaxws:endpoint>
</beans>
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: