You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@camel.apache.org by "pavan dinavahi (JIRA)" <ji...@apache.org> on 2015/08/05 23:05:04 UTC

[jira] [Created] (CAMEL-9058) Spring Boot startup failure when running executable war file with libraries containing TypeConverter services file and classes annotated @Converter

pavan dinavahi created CAMEL-9058:
-------------------------------------

             Summary: Spring Boot startup failure when running executable war file with libraries containing TypeConverter services file and classes annotated @Converter
                 Key: CAMEL-9058
                 URL: https://issues.apache.org/jira/browse/CAMEL-9058
             Project: Camel
          Issue Type: Bug
          Components: camel-spring-boot
    Affects Versions: 2.15.2
         Environment: Mac OS X
Java 8

            Reporter: pavan dinavahi
            Priority: Critical


When running Camel within Spring Boot and using Smooks, the AnnotationTypeConverterLoader is not able find any @Converter annotated classes with the Spring Boot Executable War file, this causes a startup failure of the Spring Boot application. The @Converter annotated classes are within the Smooks library within WEB-INF/lib/ of the Spring Boot generated executable War file. 

The AnnotationTypeConverterLoader default strategy is using the Resolver's findAnnotated method for loading @Converter annotated classes within the WAR. There is no way to configure a custom TypeConverterLoader within CamelContext or SpringCamelContext either. 
 
I had to rebuild the Smooks library without the META-INF/services/org/apache/camel/TypeConverter file to get the application running.
 
Please note that this was not an issue when running Spring Boot using "gradle bootRun".
 
2015-08-05 15:53:16.440 ERROR 5915 --- [           main] o.s.boot.SpringApplication               : Application startup failed
org.apache.camel.spring.boot.CamelSpringBootInitializationException: org.apache.camel.RuntimeCamelException: org.apache.camel.TypeConverterLoaderException: Failed to load type converters because of: Cannot find any type converter classes from the following packages: [org.milyn.smooks.camel.converters]
    at org.apache.camel.spring.boot.RoutesCollector.onApplicationEvent(RoutesCollector.java:69)
    at org.apache.camel.spring.boot.RoutesCollector.onApplicationEvent(RoutesCollector.java:29)
    at org.springframework.context.event.SimpleApplicationEventMulticaster.invokeListener(SimpleApplicationEventMulticaster.java:151)
    at org.springframework.context.event.SimpleApplicationEventMulticaster.multicastEvent(SimpleApplicationEventMulticaster.java:128)
    at org.springframework.context.support.AbstractApplicationContext.publishEvent(AbstractApplicationContext.java:331)
    at org.springframework.context.support.AbstractApplicationContext.finishRefresh(AbstractApplicationContext.java:773)
    at org.springframework.boot.context.embedded.EmbeddedWebApplicationContext.finishRefresh(EmbeddedWebApplicationContext.java:140)
    at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:483)
    at org.springframework.boot.context.embedded.EmbeddedWebApplicationContext.refresh(EmbeddedWebApplicationContext.java:118)
    at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:686)
    at org.springframework.boot.SpringApplication.run(SpringApplication.java:320)
    at org.springframework.boot.SpringApplication.run(SpringApplication.java:957)
    at org.springframework.boot.SpringApplication.run(SpringApplication.java:946)
    at com.ea.it.coalesce.CamelConfig.main(CamelConfig.java:69)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:483)
    at org.springframework.boot.loader.MainMethodRunner.run(MainMethodRunner.java:53)
    at java.lang.Thread.run(Thread.java:744)
Caused by: org.apache.camel.RuntimeCamelException: org.apache.camel.TypeConverterLoaderException: Failed to load type converters because of: Cannot find any type converter classes from the following packages: [org.milyn.smooks.camel.converters]
    at org.apache.camel.util.ObjectHelper.wrapRuntimeCamelException(ObjectHelper.java:1619)
    at org.apache.camel.impl.DefaultCamelContext.getTypeConverter(DefaultCamelContext.java:1979)
    at org.apache.camel.impl.DefaultCamelContext.getTypeConverterRegistry(DefaultCamelContext.java:2000)
    at org.apache.camel.impl.DefaultCamelContext.forceLazyInitialization(DefaultCamelContext.java:3220)
    at org.apache.camel.impl.DefaultCamelContext.doStartCamel(DefaultCamelContext.java:2579)
    at org.apache.camel.impl.DefaultCamelContext.access$000(DefaultCamelContext.java:167)
    at org.apache.camel.impl.DefaultCamelContext$2.call(DefaultCamelContext.java:2467)
    at org.apache.camel.impl.DefaultCamelContext$2.call(DefaultCamelContext.java:2463)
    at org.apache.camel.impl.DefaultCamelContext.doWithDefinedClassLoader(DefaultCamelContext.java:2486)
    at org.apache.camel.impl.DefaultCamelContext.doStart(DefaultCamelContext.java:2463)
    at org.apache.camel.support.ServiceSupport.start(ServiceSupport.java:61)
    at org.apache.camel.impl.DefaultCamelContext.start(DefaultCamelContext.java:2432)
    at org.apache.camel.spring.boot.RoutesCollector.onApplicationEvent(RoutesCollector.java:67)
    ... 19 common frames omitted
Caused by: org.apache.camel.TypeConverterLoaderException: Failed to load type converters because of: Cannot find any type converter classes from the following packages: [org.milyn.smooks.camel.converters]
    at org.apache.camel.impl.converter.AnnotationTypeConverterLoader.load(AnnotationTypeConverterLoader.java:119)
    at org.apache.camel.impl.converter.BaseTypeConverterRegistry.loadTypeConverters(BaseTypeConverterRegistry.java:544)
    at org.apache.camel.impl.converter.DefaultTypeConverter.doStart(DefaultTypeConverter.java:53)
    at org.apache.camel.support.ServiceSupport.start(ServiceSupport.java:61)
    at org.apache.camel.impl.DefaultCamelContext.startService(DefaultCamelContext.java:2869)
    at org.apache.camel.impl.DefaultCamelContext.doAddService(DefaultCamelContext.java:1097)
    at org.apache.camel.impl.DefaultCamelContext.addService(DefaultCamelContext.java:1058)
    at org.apache.camel.impl.DefaultCamelContext.addService(DefaultCamelContext.java:1054)
    at org.apache.camel.impl.DefaultCamelContext.getTypeConverter(DefaultCamelContext.java:1977)
    ... 30 common frames omitted




--
This message was sent by Atlassian JIRA
(v6.3.4#6332)