You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by GitBox <gi...@apache.org> on 2019/10/12 08:51:58 UTC
[GitHub] [camel-quarkus] coolbeevip opened a new issue #264: About component
REST compatibility issues
coolbeevip opened a new issue #264: About component REST compatibility issues
URL: https://github.com/apache/camel-quarkus/issues/264
I recently studied Camel's Rest DSL and want to use it in Quarkus and I already know that the corresponding camel-quarkus component is platform-http https://github.com/apache/camel-quarkus/issues/217 . But it seems that the APIs of the two components are different.
quarkus version 0.23.2
camel-quarkus version 0.2.1-SNAPSHOT
I tried to use the code in camel-quarkus, but I am prompted with an error.
https://camel.apache.org/manual/latest/rest-dsl.html
```java
rest("/say")
.get("/hello").to("direct:hello")
.get("/bye").consumes("application/json").to("direct:bye");
from("direct:hello")
.transform().constant("Hello World");
from("direct:bye")
.transform().constant("Bye World");
```
stack trace of an exception
```
2019-10-12 16:14:12,397 ERROR [io.qua.dev.DevModeMain] (Timer-0) Failed to start quarkus: java.lang.RuntimeException: Failed to start quarkus
at io.quarkus.runner.ApplicationImpl2.doStart(ApplicationImpl2.zig:475)
at io.quarkus.runtime.Application.start(Application.java:93)
at io.quarkus.runner.RuntimeRunner.run(RuntimeRunner.java:135)
at io.quarkus.dev.DevModeMain.doStart(DevModeMain.java:180)
at io.quarkus.dev.DevModeMain.restartApp(DevModeMain.java:195)
at io.quarkus.dev.RuntimeUpdatesProcessor.doScan(RuntimeUpdatesProcessor.java:116)
at org.apache.camel.quarkus.core.deployment.devmode.CamelHotReplacementSetup$1.run(CamelHotReplacementSetup.java:36)
at java.util.TimerThread.mainLoop(Timer.java:555)
at java.util.TimerThread.run(Timer.java:505)
Caused by: java.lang.RuntimeException: org.apache.camel.FailedToCreateRouteException: Failed to create route route10: Route(route10)[From[direct:hello] -> [Transform[org.apache.c... because of Failed to resolve endpoint: direct://hello due to: No component found with scheme: direct
at org.apache.camel.quarkus.core.CamelMainRecorder.start(CamelMainRecorder.java:115)
at io.quarkus.deployment.steps.Main$start71.deploy_0(Main$start71.zig:77)
at io.quarkus.deployment.steps.Main$start71.deploy(Main$start71.zig:36)
at io.quarkus.runner.ApplicationImpl2.doStart(ApplicationImpl2.zig:453)
... 8 more
Caused by: org.apache.camel.FailedToCreateRouteException: Failed to create route route10: Route(route10)[From[direct:hello] -> [Transform[org.apache.c... because of Failed to resolve endpoint: direct://hello due to: No component found with scheme: direct
at org.apache.camel.reifier.RouteReifier.createRoute(RouteReifier.java:114)
at org.apache.camel.quarkus.core.FastModel.start(FastModel.java:59)
at org.apache.camel.impl.DefaultModel.startRoute(DefaultModel.java:320)
at org.apache.camel.impl.DefaultModel.startRouteDefinitions(DefaultModel.java:313)
at org.apache.camel.impl.DefaultModel.startRouteDefinitions(DefaultModel.java:292)
at org.apache.camel.quarkus.core.FastCamelContext.startRouteDefinitions(FastCamelContext.java:135)
at org.apache.camel.impl.engine.AbstractCamelContext.doStartCamel(AbstractCamelContext.java:2590)
at org.apache.camel.impl.engine.AbstractCamelContext.lambda$doStart$2(AbstractCamelContext.java:2438)
at org.apache.camel.impl.engine.AbstractCamelContext.doWithDefinedClassLoader(AbstractCamelContext.java:2455)
at org.apache.camel.impl.engine.AbstractCamelContext.doStart(AbstractCamelContext.java:2436)
at org.apache.camel.support.service.ServiceSupport.start(ServiceSupport.java:99)
at org.apache.camel.impl.engine.AbstractCamelContext.start(AbstractCamelContext.java:2345)
at org.apache.camel.quarkus.core.CamelMain.doStart(CamelMain.java:51)
at org.apache.camel.support.service.ServiceSupport.start(ServiceSupport.java:99)
at org.apache.camel.quarkus.core.CamelMainRecorder.start(CamelMainRecorder.java:113)
... 11 more
Caused by: org.apache.camel.ResolveEndpointFailedException: Failed to resolve endpoint: direct://hello due to: No component found with scheme: direct
at org.apache.camel.impl.engine.AbstractCamelContext.getEndpoint(AbstractCamelContext.java:807)
at org.apache.camel.support.CamelContextHelper.getMandatoryEndpoint(CamelContextHelper.java:55)
at org.apache.camel.impl.engine.DefaultRouteContext.resolveEndpoint(DefaultRouteContext.java:120)
at org.apache.camel.reifier.RouteReifier.doCreateRoute(RouteReifier.java:356)
at org.apache.camel.reifier.RouteReifier.createRoute(RouteReifier.java:108)
... 25 more
2019-10-12 16:14:12,398 INFO [io.qua.dev] (Timer-0) Hot replace total time: 0.822s
```
I noticed that `No component found with scheme: direct`. So I manually added some dependencies
```xml
<dependency>
<groupId>org.apache.camel.quarkus</groupId>
<artifactId>camel-quarkus-direct</artifactId>
</dependency>
<dependency>
<groupId>org.apache.camel.quarkus</groupId>
<artifactId>camel-quarkus-rest</artifactId>
</dependency>
```
But getting some new errors:
```
(base) bogon:camel-quickstart zhanglei$ mvn clean compile quarkus:dev -DnoDeps
[INFO] Scanning for projects...
[INFO]
[INFO] ------------------< org.coolbeevip:camel-quickstart >-------------------
[INFO] Building camel-quickstart 1.0.0-SNAPSHOT
[INFO] --------------------------------[ jar ]---------------------------------
[INFO]
[INFO] --- maven-clean-plugin:2.5:clean (default-clean) @ camel-quickstart ---
[INFO] Deleting /Users/zhanglei/github/quarkus-labs/camel-quickstart/target
[INFO]
[INFO] --- maven-resources-plugin:2.6:resources (default-resources) @ camel-quickstart ---
[INFO] Using 'UTF-8' encoding to copy filtered resources.
[INFO] Copying 1 resource
[INFO]
[INFO] --- maven-compiler-plugin:3.1:compile (default-compile) @ camel-quickstart ---
[INFO] Changes detected - recompiling the module!
[INFO] Compiling 3 source files to /Users/zhanglei/github/quarkus-labs/camel-quickstart/target/classes
[INFO]
[INFO] --- quarkus-maven-plugin:0.23.2:dev (default-cli) @ camel-quickstart ---
Listening for transport dt_socket at address: 5005
SLF4J: org.apache.camel.quarkus.core.deployment.BuildProcessor
SLF4J: The following set of substitute loggers may have been accessed
SLF4J: during the initialization phase. Logging calls during this
SLF4J: phase were not honored. However, subsequent logging calls to these
SLF4J: loggers will work as normally expected.
SLF4J: See also http://www.slf4j.org/codes.html#substituteLogger
2019-10-12 16:47:12,687 INFO [io.qua.dep.QuarkusAugmentor] (main) Beginning quarkus augmentation
2019-10-12 16:47:13,421 INFO [io.qua.dep.QuarkusAugmentor] (main) Quarkus augmentation completed in 734ms
2019-10-12 16:47:13,879 INFO [org.apa.cam.mai.BaseMainSupport] (main) Using properties from classpath:application.properties
2019-10-12 16:47:13,883 INFO [org.apa.cam.com.pro.PropertiesComponent] (main) PropertiesComponent added custom PropertiesSource (registry): org.apache.camel.component.microprofile.config.CamelMicroProfilePropertiesSource@24fabd0f
2019-10-12 16:47:13,884 INFO [org.apa.cam.com.pro.PropertiesComponent] (main) PropertiesComponent added custom PropertiesSource (factory): org.apache.camel.component.microprofile.config.CamelMicroProfilePropertiesSource@432034a
2019-10-12 16:47:13,904 INFO [org.apa.cam.mai.BaseMainSupport] (main) Auto-configuration summary:
2019-10-12 16:47:13,904 INFO [org.apa.cam.mai.BaseMainSupport] (main) camel.context.name=quarkus-camel-example-rest-json
2019-10-12 16:47:13,982 INFO [org.apa.cam.qua.cor.FastCamelContext] (main) Apache Camel 3.0.0-SNAPSHOT (CamelContext: quarkus-camel-example-rest-json) is starting
2019-10-12 16:47:13,982 INFO [org.apa.cam.imp.eng.DefaultManagementStrategy] (main) JMX is disabled
2019-10-12 16:47:14,089 INFO [org.apa.cam.qua.cor.FastCamelContext] (main) StreamCaching is not in use. If using streams then its recommended to enable stream caching. See more details at http://camel.apache.org/stream-caching.html
2019-10-12 16:47:14,154 INFO [org.apa.cam.qua.cor.FastCamelContext] (main) Apache Camel 3.0.0-SNAPSHOT (CamelContext: quarkus-camel-example-rest-json) is shutting down
2019-10-12 16:47:14,157 INFO [org.apa.cam.mai.MainLifecycleStrategy] (main) CamelContext: quarkus-camel-example-rest-json has been shutdown, triggering shutdown of the JVM.
2019-10-12 16:47:14,164 INFO [org.apa.cam.qua.cor.FastCamelContext] (main) Apache Camel 3.0.0-SNAPSHOT (CamelContext: quarkus-camel-example-rest-json) uptime 0.181 seconds
2019-10-12 16:47:14,164 INFO [org.apa.cam.qua.cor.FastCamelContext] (main) Apache Camel 3.0.0-SNAPSHOT (CamelContext: quarkus-camel-example-rest-json) is shutdown in 0.010 seconds
2019-10-12 16:47:14,165 ERROR [org.apa.cam.qua.cor.FastCamelContext] (main) Error starting CamelContext (quarkus-camel-example-rest-json) due to exception thrown: Failed to start route route5 because of Route(route5)[From[rest://get:/say:/hello?routeId=route5] ->...: org.apache.camel.FailedToStartRouteException: Failed to start route route5 because of Route(route5)[From[rest://get:/say:/hello?routeId=route5] ->...
at org.apache.camel.impl.engine.BaseRouteService.warmUp(BaseRouteService.java:131)
at org.apache.camel.impl.engine.AbstractCamelContext.doWarmUpRoutes(AbstractCamelContext.java:3140)
at org.apache.camel.impl.engine.AbstractCamelContext.safelyStartRouteServices(AbstractCamelContext.java:3035)
at org.apache.camel.impl.engine.AbstractCamelContext.doStartOrResumeRoutes(AbstractCamelContext.java:2824)
at org.apache.camel.impl.engine.AbstractCamelContext.doStartCamel(AbstractCamelContext.java:2632)
at org.apache.camel.impl.engine.AbstractCamelContext.lambda$doStart$2(AbstractCamelContext.java:2438)
at org.apache.camel.impl.engine.AbstractCamelContext.doWithDefinedClassLoader(AbstractCamelContext.java:2455)
at org.apache.camel.impl.engine.AbstractCamelContext.doStart(AbstractCamelContext.java:2436)
at org.apache.camel.support.service.ServiceSupport.start(ServiceSupport.java:99)
at org.apache.camel.impl.engine.AbstractCamelContext.start(AbstractCamelContext.java:2345)
at org.apache.camel.quarkus.core.CamelMain.doStart(CamelMain.java:51)
at org.apache.camel.support.service.ServiceSupport.start(ServiceSupport.java:99)
at org.apache.camel.quarkus.core.CamelMainRecorder.start(CamelMainRecorder.java:113)
at io.quarkus.deployment.steps.Main$start35.deploy_0(Main$start35.zig:77)
at io.quarkus.deployment.steps.Main$start35.deploy(Main$start35.zig:36)
at io.quarkus.runner.ApplicationImpl1.doStart(ApplicationImpl1.zig:260)
at io.quarkus.runtime.Application.start(Application.java:93)
at io.quarkus.runner.RuntimeRunner.run(RuntimeRunner.java:135)
at io.quarkus.dev.DevModeMain.doStart(DevModeMain.java:180)
at io.quarkus.dev.DevModeMain.start(DevModeMain.java:94)
at io.quarkus.dev.DevModeMain.main(DevModeMain.java:66)
Caused by: java.lang.IllegalStateException: Cannot find RestConsumerFactory in Registry or as a Component to use
at org.apache.camel.component.rest.RestEndpoint.createConsumer(RestEndpoint.java:546)
at org.apache.camel.impl.engine.EventDrivenConsumerRoute.addServices(EventDrivenConsumerRoute.java:68)
at org.apache.camel.impl.engine.DefaultRoute.onStartingServices(DefaultRoute.java:120)
at org.apache.camel.impl.engine.BaseRouteService.doWarmUp(BaseRouteService.java:157)
at org.apache.camel.impl.engine.BaseRouteService.warmUp(BaseRouteService.java:129)
... 20 more
java.lang.RuntimeException: org.apache.camel.FailedToStartRouteException: Failed to start route route5 because of Route(route5)[From[rest://get:/say:/hello?routeId=route5] ->...
at org.apache.camel.quarkus.core.CamelMainRecorder.start(CamelMainRecorder.java:115)
at io.quarkus.deployment.steps.Main$start35.deploy_0(Main$start35.zig:77)
at io.quarkus.deployment.steps.Main$start35.deploy(Main$start35.zig:36)
at io.quarkus.runner.ApplicationImpl1.doStart(ApplicationImpl1.zig:260)
at io.quarkus.runtime.Application.start(Application.java:93)
at io.quarkus.runner.RuntimeRunner.run(RuntimeRunner.java:135)
at io.quarkus.dev.DevModeMain.doStart(DevModeMain.java:180)
at io.quarkus.dev.DevModeMain.start(DevModeMain.java:94)
at io.quarkus.dev.DevModeMain.main(DevModeMain.java:66)
Caused by: org.apache.camel.FailedToStartRouteException: Failed to start route route5 because of Route(route5)[From[rest://get:/say:/hello?routeId=route5] ->...
at org.apache.camel.impl.engine.BaseRouteService.warmUp(BaseRouteService.java:131)
at org.apache.camel.impl.engine.AbstractCamelContext.doWarmUpRoutes(AbstractCamelContext.java:3140)
at org.apache.camel.impl.engine.AbstractCamelContext.safelyStartRouteServices(AbstractCamelContext.java:3035)
at org.apache.camel.impl.engine.AbstractCamelContext.doStartOrResumeRoutes(AbstractCamelContext.java:2824)
at org.apache.camel.impl.engine.AbstractCamelContext.doStartCamel(AbstractCamelContext.java:2632)
at org.apache.camel.impl.engine.AbstractCamelContext.lambda$doStart$2(AbstractCamelContext.java:2438)
at org.apache.camel.impl.engine.AbstractCamelContext.doWithDefinedClassLoader(AbstractCamelContext.java:2455)
at org.apache.camel.impl.engine.AbstractCamelContext.doStart(AbstractCamelContext.java:2436)
at org.apache.camel.support.service.ServiceSupport.start(ServiceSupport.java:99)
at org.apache.camel.impl.engine.AbstractCamelContext.start(AbstractCamelContext.java:2345)
at org.apache.camel.quarkus.core.CamelMain.doStart(CamelMain.java:51)
at org.apache.camel.support.service.ServiceSupport.start(ServiceSupport.java:99)
at org.apache.camel.quarkus.core.CamelMainRecorder.start(CamelMainRecorder.java:113)
... 8 more
Caused by: java.lang.IllegalStateException: Cannot find RestConsumerFactory in Registry or as a Component to use
at org.apache.camel.component.rest.RestEndpoint.createConsumer(RestEndpoint.java:546)
at org.apache.camel.impl.engine.EventDrivenConsumerRoute.addServices(EventDrivenConsumerRoute.java:68)
at org.apache.camel.impl.engine.DefaultRoute.onStartingServices(DefaultRoute.java:120)
at org.apache.camel.impl.engine.BaseRouteService.doWarmUp(BaseRouteService.java:157)
at org.apache.camel.impl.engine.BaseRouteService.warmUp(BaseRouteService.java:129)
... 20 more
2019-10-12 16:47:14,192 ERROR [io.qua.dev.DevModeMain] (main) Failed to start quarkus: java.lang.RuntimeException: Failed to start quarkus
at io.quarkus.runner.ApplicationImpl1.doStart(ApplicationImpl1.zig:282)
at io.quarkus.runtime.Application.start(Application.java:93)
at io.quarkus.runner.RuntimeRunner.run(RuntimeRunner.java:135)
at io.quarkus.dev.DevModeMain.doStart(DevModeMain.java:180)
at io.quarkus.dev.DevModeMain.start(DevModeMain.java:94)
at io.quarkus.dev.DevModeMain.main(DevModeMain.java:66)
Caused by: java.lang.RuntimeException: org.apache.camel.FailedToStartRouteException: Failed to start route route5 because of Route(route5)[From[rest://get:/say:/hello?routeId=route5] ->...
at org.apache.camel.quarkus.core.CamelMainRecorder.start(CamelMainRecorder.java:115)
at io.quarkus.deployment.steps.Main$start35.deploy_0(Main$start35.zig:77)
at io.quarkus.deployment.steps.Main$start35.deploy(Main$start35.zig:36)
at io.quarkus.runner.ApplicationImpl1.doStart(ApplicationImpl1.zig:260)
... 5 more
Caused by: org.apache.camel.FailedToStartRouteException: Failed to start route route5 because of Route(route5)[From[rest://get:/say:/hello?routeId=route5] ->...
at org.apache.camel.impl.engine.BaseRouteService.warmUp(BaseRouteService.java:131)
at org.apache.camel.impl.engine.AbstractCamelContext.doWarmUpRoutes(AbstractCamelContext.java:3140)
at org.apache.camel.impl.engine.AbstractCamelContext.safelyStartRouteServices(AbstractCamelContext.java:3035)
at org.apache.camel.impl.engine.AbstractCamelContext.doStartOrResumeRoutes(AbstractCamelContext.java:2824)
at org.apache.camel.impl.engine.AbstractCamelContext.doStartCamel(AbstractCamelContext.java:2632)
at org.apache.camel.impl.engine.AbstractCamelContext.lambda$doStart$2(AbstractCamelContext.java:2438)
at org.apache.camel.impl.engine.AbstractCamelContext.doWithDefinedClassLoader(AbstractCamelContext.java:2455)
at org.apache.camel.impl.engine.AbstractCamelContext.doStart(AbstractCamelContext.java:2436)
at org.apache.camel.support.service.ServiceSupport.start(ServiceSupport.java:99)
at org.apache.camel.impl.engine.AbstractCamelContext.start(AbstractCamelContext.java:2345)
at org.apache.camel.quarkus.core.CamelMain.doStart(CamelMain.java:51)
at org.apache.camel.support.service.ServiceSupport.start(ServiceSupport.java:99)
at org.apache.camel.quarkus.core.CamelMainRecorder.start(CamelMainRecorder.java:113)
... 8 more
Caused by: java.lang.IllegalStateException: Cannot find RestConsumerFactory in Registry or as a Component to use
at org.apache.camel.component.rest.RestEndpoint.createConsumer(RestEndpoint.java:546)
at org.apache.camel.impl.engine.EventDrivenConsumerRoute.addServices(EventDrivenConsumerRoute.java:68)
at org.apache.camel.impl.engine.DefaultRoute.onStartingServices(DefaultRoute.java:120)
at org.apache.camel.impl.engine.BaseRouteService.doWarmUp(BaseRouteService.java:157)
at org.apache.camel.impl.engine.BaseRouteService.warmUp(BaseRouteService.java:129)
... 20 more
2019-10-12 16:47:14,193 ERROR [io.qua.dev.DevModeMain] (main) Failed to start Quarkus, attempting to start hot replacement endpoint to recover
```
I only found some usage of the platform-http component in https://github.com/apache/camel-quarkus/blob/master/examples/rest-json/src/main/java/org/acme/rest/json/Routes.java. Is there any more detailed information that will give me a better understanding of how REST DSL is used in Qurakus?
----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
With regards,
Apache Git Services