camel-karavan icon indicating copy to clipboard operation
camel-karavan copied to clipboard

Olingo4 API Name error : No matching method for /DEFAULT

Open cdia8890 opened this issue 10 months ago • 5 comments

Describe the bug

When using Olingo4 component with Karavan, the following error is displayed. The dropdown of the API Name only has a DEFAULT option.

Steps to reproduce the behavior

image

image

Variant

Web Application

Container Management (if applicable)

Docker

Operating System (if applicable)

Windows

Version

4.5.0

Relevant log output

2024-04-23 19:24:51.565  INFO 26740 --- [           main] org.apache.camel.main.MainSupport   : Apache Camel (JBang) 4.5.0 is starting
2024-04-23 19:24:51.864  INFO 26740 --- [           main] org.apache.camel.main.MainSupport   : Using Java 17.0.10 with PID 26740.
2024-04-23 19:24:52.032  INFO 26740 --- [           main] g.apache.camel.main.BaseMainSupport : Properties location: file:application.properties
2024-04-23 19:24:52.103  INFO 26740 --- [           main] apache.camel.main.ProfileConfigurer : The application is starting with profile: dev
2024-04-23 19:24:52.240  INFO 26740 --- [           main] g.apache.camel.main.BaseMainSupport : Auto-configuration summary
2024-04-23 19:24:52.241  INFO 26740 --- [           main] g.apache.camel.main.BaseMainSupport :     [application.properties]       camel.health.enabled=true
2024-04-23 19:24:52.241  INFO 26740 --- [           main] g.apache.camel.main.BaseMainSupport :     [application.properties]       camel.health.exposureLevel=full
2024-04-23 19:24:53.580  INFO 26740 --- [           main] mel.cli.connector.LocalCliConnector : Management from Camel JBang enabled
org.apache.camel.FailedToCreateRouteException: Failed to create route route-e4da at: >>> To[olingo4:DEFAULT/read?serviceUri=https://services.odata.org/TripPinRESTierService] <<< in route: Route(route-e4da)[From[timer:kafka-timer] -> [To[olingo4:DEF... because of Failed to resolve endpoint: olingo4://DEFAULT/read?serviceUri=https://services.odata.org/TripPinRESTierService due to: No matching method for /DEFAULT, with arguments [responseHandler, resourcePath, edm]
        at org.apache.camel.reifier.RouteReifier.doCreateRoute(RouteReifier.java:228)
        at org.apache.camel.reifier.RouteReifier.createRoute(RouteReifier.java:79)
        at org.apache.camel.impl.DefaultModelReifierFactory.createRoute(DefaultModelReifierFactory.java:49)
        at org.apache.camel.impl.DefaultCamelContext.startRouteDefinitions(DefaultCamelContext.java:728)
        at org.apache.camel.impl.DefaultCamelContext.startRouteDefinitions(DefaultCamelContext.java:594)
        at org.apache.camel.impl.engine.AbstractCamelContext.doInit(AbstractCamelContext.java:2391)
        at org.apache.camel.support.service.BaseService.init(BaseService.java:78)
        at org.apache.camel.impl.engine.AbstractCamelContext.init(AbstractCamelContext.java:2027)
        at org.apache.camel.support.service.BaseService.start(BaseService.java:105)
        at org.apache.camel.impl.engine.AbstractCamelContext.start(AbstractCamelContext.java:2046)
        at org.apache.camel.impl.DefaultCamelContext.start(DefaultCamelContext.java:212)
        at org.apache.camel.main.KameletMain.doStart(KameletMain.java:363)
        at org.apache.camel.support.service.BaseService.start(BaseService.java:113)
        at org.apache.camel.dsl.jbang.core.commands.Run.runKameletMain(Run.java:1125)
        at org.apache.camel.dsl.jbang.core.commands.Run.run(Run.java:811)
        at org.apache.camel.dsl.jbang.core.commands.Run.doCall(Run.java:301)
        at org.apache.camel.dsl.jbang.core.commands.CamelCommand.call(CamelCommand.java:71)
        at org.apache.camel.dsl.jbang.core.commands.CamelCommand.call(CamelCommand.java:37)
        at picocli.CommandLine.executeUserObject(CommandLine.java:2041)
        at picocli.CommandLine.access$1500(CommandLine.java:148)
        at picocli.CommandLine$RunLast.executeUserObjectOfLastSubcommandWithSameParent(CommandLine.java:2461)
        at picocli.CommandLine$RunLast.handle(CommandLine.java:2453)
        at picocli.CommandLine$RunLast.handle(CommandLine.java:2415)
        at picocli.CommandLine$AbstractParseResultHandler.execute(CommandLine.java:2273)
        at picocli.CommandLine$RunLast.execute(CommandLine.java:2417)
        at picocli.CommandLine.execute(CommandLine.java:2170)
        at org.apache.camel.dsl.jbang.core.commands.CamelJBangMain.run(CamelJBangMain.java:164)
        at org.apache.camel.dsl.jbang.core.commands.CamelJBangMain.run(CamelJBangMain.java:60)
        at main.CamelJBang.main(CamelJBang.java:36)
Caused by: org.apache.camel.ResolveEndpointFailedException: Failed to resolve endpoint: olingo4://DEFAULT/read?serviceUri=https://services.odata.org/TripPinRESTierService due to: No matching method for /DEFAULT, with arguments [responseHandler, resourcePath, edm]
        at org.apache.camel.impl.engine.AbstractCamelContext.doGetEndpoint(AbstractCamelContext.java:831)
        at org.apache.camel.impl.engine.AbstractCamelContext.getEndpoint(AbstractCamelContext.java:731)
        at org.apache.camel.support.CamelContextHelper.resolveEndpoint(CamelContextHelper.java:128)
        at org.apache.camel.reifier.SendReifier.resolveEndpoint(SendReifier.java:47)
        at org.apache.camel.reifier.SendReifier.createProcessor(SendReifier.java:37)
        at org.apache.camel.reifier.ProcessorReifier.makeProcessor(ProcessorReifier.java:879)
        at org.apache.camel.reifier.ProcessorReifier.addRoutes(ProcessorReifier.java:619)
        at org.apache.camel.reifier.RouteReifier.doCreateRoute(RouteReifier.java:224)
        ... 28 more
Caused by: java.lang.IllegalArgumentException: No matching method for /DEFAULT, with arguments [responseHandler, resourcePath, edm]
        at org.apache.camel.support.component.AbstractApiEndpoint.initState(AbstractApiEndpoint.java:179)
        at org.apache.camel.support.component.AbstractApiEndpoint.configureProperties(AbstractApiEndpoint.java:136)
        at org.apache.camel.component.olingo4.Olingo4Endpoint.configureProperties(Olingo4Endpoint.java:155)
        at org.apache.camel.support.DefaultComponent.setProperties(DefaultComponent.java:421)
        at org.apache.camel.component.olingo4.Olingo4Component.createEndpoint(Olingo4Component.java:90)
        at org.apache.camel.support.DefaultComponent.createEndpoint(DefaultComponent.java:170)
        at org.apache.camel.impl.engine.AbstractCamelContext.doGetEndpoint(AbstractCamelContext.java:797)
        ... 35 more

cdia8890 avatar Apr 23 '24 18:04 cdia8890

It has only one option because it is only one enum option in Camel Catalog https://github.com/apache/camel/blob/c2b21559da229c457ba673747a41be689d1c6f75/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/olingo4.json#L48

mgubaidullin avatar Apr 24 '24 00:04 mgubaidullin

Thanks for the quick response. Is it possible to update the Camel Catalog?

The Endpoint DSL works properly in Java. The only problem is when using Karavan.

image

cdia8890 avatar Apr 24 '24 08:04 cdia8890

Yes lets fixed this in Camel itself https://issues.apache.org/jira/browse/CAMEL-20715

davsclaus avatar Apr 24 '24 19:04 davsclaus

Thank you very much for the quick support. This is really helpful. I see this fix will be available in 4.6.0 version. That's by next month right?

cdia8890 avatar Apr 25 '24 10:04 cdia8890

Yeah we plan to release camel 4.6 next month

davsclaus avatar Apr 25 '24 11:04 davsclaus