Hi Claus,

I checked the code, the @FallbackTypeCoverter should work.
Can you make sure you are using the latest camel-cxf version?

Willem


Claus Ibsen (JIRA) wrote:
>     [ 
> https://issues.apache.org/activemq/browse/CAMEL-1427?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=50529#action_50529
>  ] 
> 
> Claus Ibsen commented on CAMEL-1427:
> ------------------------------------
> 
> Ad 1)
> It could be because of the @FallbackTypeconverter not kick in, eg when using 
> OSGi.
> 
> camel-cxf has a CxfConverter that is a @FallbackTypeConverter that should 
> deal with the CXF List stuff.
> 
>> 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&amp;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)
> 

Reply via email to