[ https://issues.apache.org/activemq/browse/CAMEL-1427?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=50636#action_50636 ]
Charles Moulliard commented on CAMEL-1427: ------------------------------------------ @Willem In fact, we cannot use import {code} <import resource="classpath:META-INF/cxf/cxf.xml"/> <import resource="classpath:META-INF/cxf/cxf-extension-soap.xml"/> <import resource="classpath:META-INF/cxf/cxf-extension-http-jetty.xml"/> {code} because in this case in a OSGI server, the camel routes defined with the string url for the cxf endpoint does not work. Temporary conclusion : Top of SMX4, we cannot use import statements and we can't use the cxf:endpoint but only declare the uri like this : {code} <camel:from uri="cxf://http://localhost:8080/camel-example/incident? ..... {code} Remark : I will create a bundle of the reportincident example and deploy it in SMX to see if the error appears in OSGI > java.lang.IllegalStateException: BeanFactory not initialized or already > closed - call 'refresh' before accessing beans via the ApplicationContext > ------------------------------------------------------------------------------------------------------------------------------------------------- > > Key: CAMEL-1427 > URL: https://issues.apache.org/activemq/browse/CAMEL-1427 > Project: Apache Camel > Issue Type: Bug > Components: camel-osgi > Reporter: Charles Moulliard > Assignee: Willem Jiang > > Hi, > When I run the following spring DSL in SMX4 > <?xml version="1.0" encoding="UTF-8"?> > <beans xmlns="http://www.springframework.org/schema/beans" > xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" > xmlns:camel="http://camel.apache.org/schema/spring" > xmlns:cxf="http://camel.apache.org/schema/cxf" > xsi:schemaLocation=" http://www.springframework.org/schema/beans > http://www.springframework.org/schema/beans/spring-beans-2.5.xsd > http://camel.apache.org/schema/osgi > http://camel.apache.org/schema/osgi/camel-osgi.xsd > http://camel.apache.org/schema/spring > http://camel.apache.org/schema/spring/camel-spring.xsd > http://camel.apache.org/schema/cxf > http://camel.apache.org/schema/cxf/camel-cxf.xsd"> > > <bean id="bindyDataformat" > > class="org.apache.camel.dataformat.bindy.csv.BindyCsvDataFormat"> > <constructor-arg type="java.lang.String" > value="org.apache.camel.example.reportincident.model" /> > </bean> > > <bean id="csv" > class="org.apache.camel.example.reportincident.csv.CsvBean" /> > <bean id="OK" > class="org.apache.camel.example.reportincident.OutputReportIncident"> > <property name="code" value="0"/> > </bean> > <camelContext trace="true" xmlns="http://camel.apache.org/schema/osgi"> > > <camel:package>org.apache.camel.example.reportincident.routing</camel:package> > > <!-- File route --> > <camel:route> > <camel:from > uri="file://d:/temp/data/?moveExpression=d:/temp/done/${file:name}" /> > <camel:unmarshal ref="bindyDataformat" /> > <camel:to uri="bean:csv" /> > </camel:route> > > <!-- CXF route --> > <camel:route> > <camel:from > uri="cxf://http://localhost:8080/camel-example/incident?serviceClass=org.apache.camel.example.reportincident.service.ReportIncidentEndpoint&wsdlURL=wsdl/report_incident.wsdl" > /> > <camel:convertBodyTo > type="org.apache.camel.example.reportincident.InputReportIncident" /> > <camel:to uri="log:cxf" /> > <camel:transform> > <camel:method bean="OK" method="code"/> > </camel:transform> > </camel:route> > > </camelContext> > </beans> > , I receive the following error : > 15:48:59,209 | ERROR | xtenderThread-15 | OsgiBundleXmlApplicationContext | > gatedExecutionApplicationContext 366 | Post refresh error > java.lang.IllegalStateException: BeanFactory not initialized or already > closed - call 'refresh' before accessing beans via the ApplicationContext > at > org.springframework.context.support.AbstractRefreshableApplicationContext.getBeanFactory(AbstractRefreshableApplicationContext.java:153) > at > org.springframework.context.support.AbstractApplicationContext.containsBean(AbstractApplicationContext.java:892) > at > org.apache.cxf.configuration.spring.ConfigurerImpl.configureBean(ConfigurerImpl.java:141) > at > org.apache.cxf.configuration.spring.ConfigurerImpl.configureBean(ConfigurerImpl.java:111) > at > org.apache.cxf.transport.http.AbstractHTTPTransportFactory.configure(AbstractHTTPTransportFactory.java:229) > at > org.apache.cxf.transport.http.AbstractHTTPTransportFactory.configure(AbstractHTTPTransportFactory.java:224) > at > org.apache.cxf.transport.http_jetty.JettyHTTPTransportFactory.createDestination(JettyHTTPTransportFactory.java:121) > at > org.apache.cxf.transport.http_jetty.JettyHTTPTransportFactory.getDestination(JettyHTTPTransportFactory.java:103) > at > org.apache.cxf.endpoint.ServerImpl.initDestination(ServerImpl.java:90) > at org.apache.cxf.endpoint.ServerImpl.<init>(ServerImpl.java:69) > at > org.apache.cxf.frontend.ServerFactoryBean.create(ServerFactoryBean.java:121) > at > org.apache.cxf.jaxws.JaxWsServerFactoryBean.create(JaxWsServerFactoryBean.java:168) > at > org.apache.camel.component.cxf.CxfConsumer.<init>(CxfConsumer.java:102) > at > org.apache.camel.component.cxf.CxfEndpoint.createConsumer(CxfEndpoint.java:95) > at > org.apache.camel.impl.EventDrivenConsumerRoute.addServices(EventDrivenConsumerRoute.java:62) > at org.apache.camel.Route.getServicesForRoute(Route.java:74) > at org.apache.camel.impl.RouteService.doStart(RouteService.java:77) > at org.apache.camel.impl.ServiceSupport.start(ServiceSupport.java:50) > at > org.apache.camel.impl.DefaultCamelContext.doStart(DefaultCamelContext.java:743) > at > org.apache.camel.spring.SpringCamelContext.maybeDoStart(SpringCamelContext.java:165) > at > org.apache.camel.spring.SpringCamelContext.doStart(SpringCamelContext.java:160) > at org.apache.camel.impl.ServiceSupport.start(ServiceSupport.java:50) > at > org.apache.camel.spring.SpringCamelContext.maybeStart(SpringCamelContext.java:95) > at > org.apache.camel.spring.SpringCamelContext.onApplicationEvent(SpringCamelContext.java:114) > at > org.springframework.context.event.SimpleApplicationEventMulticaster$1.run(SimpleApplicationEventMulticaster.java:78) > at > org.springframework.core.task.SyncTaskExecutor.execute(SyncTaskExecutor.java:49) > at > org.springframework.context.event.SimpleApplicationEventMulticaster.multicastEvent(SimpleApplicationEventMulticaster.java:76) > at > org.springframework.context.support.AbstractApplicationContext.publishEvent(AbstractApplicationContext.java:274) > at > org.springframework.context.support.AbstractApplicationContext.finishRefresh(AbstractApplicationContext.java:736) > at > org.springframework.osgi.context.support.AbstractDelegatedExecutionApplicationContext.finishRefresh(AbstractDelegatedExecutionApplicationContext.java:380) > at > org.springframework.osgi.context.support.AbstractDelegatedExecutionApplicationContext$4.run(AbstractDelegatedExecutionApplicationContext.java:346) > at > org.springframework.osgi.util.internal.PrivilegedUtils.executeWithCustomTCCL(PrivilegedUtils.java:85) > at > org.springframework.osgi.context.support.AbstractDelegatedExecutionApplicationContext.completeRefresh(AbstractDelegatedExecutionApplicationContext.java:308) > at > org.springframework.osgi.extender.internal.dependencies.startup.DependencyWaiterApplicationContextExecutor$CompleteRefreshTask.run(DependencyWaiterApplicationContextExecutor.java:138) > at java.lang.Thread.run(Thread.java:595) > but the error is not generated when running outside of an OSGI server (SMX4) -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online.