Details
-
Bug
-
Status: Resolved
-
Minor
-
Resolution: Information Provided
-
3.18.0
-
None
-
Camel 3.18, Java 11.
-
Unknown
Description
When running a YAML route using camel-jbang, it fails to find the class for a Java bean in the same directory. However, the equivalent route written in Java DSL runs the route without errors.
The attached tarball contains a simple bean and equivalent routes in Java and YAML.
To see the failures, run the YAML route:
$ camel run HelloBean.java hello.yaml java.lang.RuntimeException: java.lang.ClassNotFoundException: HelloBean at org.apache.camel.dsl.yaml.deserializers.BeansDeserializer$1.configure(BeansDeserializer.java:67) at org.apache.camel.dsl.yaml.common.YamlSupport$1.configure(YamlSupport.java:121) at org.apache.camel.dsl.yaml.YamlRoutesBuilderLoader$1.doConfigure(YamlRoutesBuilderLoader.java:166) at org.apache.camel.dsl.yaml.YamlRoutesBuilderLoader$1.configure(YamlRoutesBuilderLoader.java:140) at org.apache.camel.builder.RouteBuilder.checkInitialized(RouteBuilder.java:672) at org.apache.camel.builder.RouteBuilder.configureRoutes(RouteBuilder.java:618) at org.apache.camel.builder.RouteBuilder.addRoutesToCamelContext(RouteBuilder.java:554) at org.apache.camel.impl.engine.AbstractCamelContext.addRoutes(AbstractCamelContext.java:1178) at org.apache.camel.main.RoutesConfigurer.addDiscoveredRoutes(RoutesConfigurer.java:237) at org.apache.camel.main.RoutesConfigurer.configureRoutes(RoutesConfigurer.java:212) at org.apache.camel.main.BaseMainSupport.configureRoutes(BaseMainSupport.java:582) at org.apache.camel.main.BaseMainSupport.postProcessCamelContext(BaseMainSupport.java:637) at org.apache.camel.main.MainSupport.initCamelContext(MainSupport.java:403) at org.apache.camel.main.KameletMain.doInit(KameletMain.java:227) at org.apache.camel.support.service.BaseService.init(BaseService.java:83) at org.apache.camel.support.service.BaseService.start(BaseService.java:111) at org.apache.camel.dsl.jbang.core.commands.Run.run(Run.java:560) at org.apache.camel.dsl.jbang.core.commands.Run.call(Run.java:199) at org.apache.camel.dsl.jbang.core.commands.Run.call(Run.java:72) at picocli.CommandLine.executeUserObject(CommandLine.java:1953) at picocli.CommandLine.access$1300(CommandLine.java:145) at picocli.CommandLine$RunLast.executeUserObjectOfLastSubcommandWithSameParent(CommandLine.java:2358) at picocli.CommandLine$RunLast.handle(CommandLine.java:2352) at picocli.CommandLine$RunLast.handle(CommandLine.java:2314) at picocli.CommandLine$AbstractParseResultHandler.execute(CommandLine.java:2179) at picocli.CommandLine$RunLast.execute(CommandLine.java:2316) at picocli.CommandLine.execute(CommandLine.java:2078) at org.apache.camel.dsl.jbang.core.commands.CamelJBangMain.run(CamelJBangMain.java:51) at main.CamelJBang.main(CamelJBang.java:37) Caused by: java.lang.ClassNotFoundException: HelloBean at org.apache.camel.impl.engine.DefaultClassResolver.resolveMandatoryClass(DefaultClassResolver.java:87) at org.apache.camel.support.PropertyBindingSupport.resolveBean(PropertyBindingSupport.java:1519) at org.apache.camel.dsl.yaml.deserializers.NamedBeanDefinition.newInstance(NamedBeanDefinition.java:64) at org.apache.camel.dsl.yaml.deserializers.BeansDeserializer$1.configure(BeansDeserializer.java:65) ... 28 more
However, the Java route runs without errors:
$ camel run HelloBean.java HelloRoute.javaJ
Attachments
Attachments
Issue Links
- relates to
-
CAMEL-18339 camel-joor - Java DSL - Allow compiled classes to be loadable from anywhere in Camel
- Resolved