Uploaded image for project: 'Red Hat build of Apache Camel for Spring Boot'
  1. Red Hat build of Apache Camel for Spring Boot
  2. CSB-2125

camel-openapi-java-starter throws an error on parsing openapi yaml

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Done
    • Icon: Major Major
    • CSB-4.0
    • CSB-4.0
    • Camel
    • None
    • False
    • Hide

      None

      Show
      None
    • False
    • Very Likely
    • 0

      This issue can be reproduced with the rest-openapi example from https://github.com/jboss-fuse/camel-spring-boot-examples/tree/camel-spring-boot-examples-4.0.0-M3-branch :

        .   ____          _            __ _ _
       /\\ / ___'_ __ _ _(_)_ __  __ _ \ \ \ \
      ( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \
       \\/  ___)| |_)| | | | | || (_| |  ) ) ) )
        '  |____| .__|_| |_|_| |_\__, | / / / /
       =========|_|==============|___/=/_/_/_/
       :: Spring Boot ::                (v3.0.6)
      
      2023-07-24T11:02:19.481+02:00  INFO 452274 --- [           main] o.a.c.example.springboot.Application     : Starting Application using Java 17.0.5 with PID 452274 (/git/camel-spring-boot-examples/rest-openapi/target/classes started by avano in /git/camel-spring-boot-examples/rest-openapi)
      2023-07-24T11:02:19.483+02:00  INFO 452274 --- [           main] o.a.c.example.springboot.Application     : No active profile set, falling back to 1 default profile: "default"
      2023-07-24T11:02:19.890+02:00  WARN 452274 --- [           main] io.undertow.websockets.jsr               : UT026010: Buffer pool was not set on WebSocketDeploymentInfo, the default pool will be used
      2023-07-24T11:02:19.897+02:00  INFO 452274 --- [           main] io.undertow.servlet                      : Initializing Spring embedded WebApplicationContext
      2023-07-24T11:02:19.898+02:00  INFO 452274 --- [           main] w.s.c.ServletWebServerApplicationContext : Root WebApplicationContext: initialization completed in 391 ms
      2023-07-24T11:02:20.213+02:00  INFO 452274 --- [           main] o.a.c.c.s.CamelHttpTransportServlet      : Initialized CamelHttpTransportServlet[name=CamelServlet, contextPath=]
      2023-07-24T11:02:20.215+02:00  INFO 452274 --- [           main] io.undertow                              : starting server: Undertow - 2.3.5.Final-redhat-00001
      2023-07-24T11:02:20.218+02:00  INFO 452274 --- [           main] org.xnio                                 : XNIO version 3.8.8.Final
      2023-07-24T11:02:20.222+02:00  INFO 452274 --- [           main] org.xnio.nio                             : XNIO NIO Implementation Version 3.8.8.Final
      2023-07-24T11:02:20.256+02:00  INFO 452274 --- [           main] org.jboss.threads                        : JBoss Threads version 3.5.0.Final
      2023-07-24T11:02:20.273+02:00  INFO 452274 --- [           main] o.s.b.w.e.undertow.UndertowWebServer     : Undertow started on port(s) 8080 (http)
      2023-07-24T11:02:20.395+02:00  WARN 452274 --- [           main] i.s.v3.parser.util.DeserializationUtils  : Error snake-parsing yaml content
      
      java.lang.NoSuchMethodError: org.yaml.snakeyaml.constructor.SafeConstructor: method 'void <init>()' not found
      	at io.swagger.v3.parser.util.DeserializationUtils$CustomSnakeYamlConstructor.<init>(DeserializationUtils.java:393) ~[swagger-parser-v3-2.1.10.jar:2.1.10]
      	at io.swagger.v3.parser.util.DeserializationUtils.readYamlTree(DeserializationUtils.java:207) ~[swagger-parser-v3-2.1.10.jar:2.1.10]
      	at io.swagger.v3.parser.util.DeserializationUtils.deserializeIntoTree(DeserializationUtils.java:143) ~[swagger-parser-v3-2.1.10.jar:2.1.10]
      	at io.swagger.v3.parser.OpenAPIV3Parser.readContents(OpenAPIV3Parser.java:168) ~[swagger-parser-v3-2.1.10.jar:2.1.10]
      	at io.swagger.v3.parser.OpenAPIV3Parser.readContents(OpenAPIV3Parser.java:107) ~[swagger-parser-v3-2.1.10.jar:2.1.10]
      	at io.swagger.v3.parser.OpenAPIV3Parser.readContents(OpenAPIV3Parser.java:151) ~[swagger-parser-v3-2.1.10.jar:2.1.10]
      	at org.apache.camel.springboot.openapi.OpenApiAutoConfiguration.createOpenAPI(OpenApiAutoConfiguration.java:154) ~[camel-openapi-java-starter-4.0.0.M3-redhat-00014.jar:4.0.0.M3-redhat-00014]
      	at org.apache.camel.springboot.openapi.OpenApiAutoConfiguration$1.beforeApplicationStart(OpenApiAutoConfiguration.java:79) ~[camel-openapi-java-starter-4.0.0.M3-redhat-00014.jar:4.0.0.M3-redhat-00014]
      	at org.apache.camel.spring.boot.CamelSpringBootApplicationListener.onApplicationEvent(CamelSpringBootApplicationListener.java:111) ~[camel-spring-boot-4.0.0.M3-redhat-00014.jar:4.0.0.M3-redhat-00014]
      	at org.apache.camel.spring.boot.CamelSpringBootApplicationListener.onApplicationEvent(CamelSpringBootApplicationListener.java:59) ~[camel-spring-boot-4.0.0.M3-redhat-00014.jar:4.0.0.M3-redhat-00014]
      	at org.springframework.context.event.SimpleApplicationEventMulticaster.doInvokeListener(SimpleApplicationEventMulticaster.java:176) ~[spring-context-6.0.8.jar:6.0.8]
      	at org.springframework.context.event.SimpleApplicationEventMulticaster.invokeListener(SimpleApplicationEventMulticaster.java:169) ~[spring-context-6.0.8.jar:6.0.8]
      	at org.springframework.context.event.SimpleApplicationEventMulticaster.multicastEvent(SimpleApplicationEventMulticaster.java:143) ~[spring-context-6.0.8.jar:6.0.8]
      	at org.springframework.context.support.AbstractApplicationContext.publishEvent(AbstractApplicationContext.java:413) ~[spring-context-6.0.8.jar:6.0.8]
      	at org.springframework.context.support.AbstractApplicationContext.publishEvent(AbstractApplicationContext.java:370) ~[spring-context-6.0.8.jar:6.0.8]
      	at org.springframework.context.support.AbstractApplicationContext.finishRefresh(AbstractApplicationContext.java:937) ~[spring-context-6.0.8.jar:6.0.8]
      	at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:587) ~[spring-context-6.0.8.jar:6.0.8]
      	at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.refresh(ServletWebServerApplicationContext.java:146) ~[spring-boot-3.0.6.jar:3.0.6]
      	at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:732) ~[spring-boot-3.0.6.jar:3.0.6]
      	at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:434) ~[spring-boot-3.0.6.jar:3.0.6]
      	at org.springframework.boot.SpringApplication.run(SpringApplication.java:310) ~[spring-boot-3.0.6.jar:3.0.6]
      	at org.springframework.boot.SpringApplication.run(SpringApplication.java:1304) ~[spring-boot-3.0.6.jar:3.0.6]
      	at org.springframework.boot.SpringApplication.run(SpringApplication.java:1293) ~[spring-boot-3.0.6.jar:3.0.6]
      	at org.apache.camel.example.springboot.Application.main(Application.java:30) ~[classes/:na]
      
      2023-07-24T11:02:20.415+02:00  INFO 452274 --- [           main] o.a.c.s.o.OpenApiAutoConfiguration       : OpenAPI (3.0.2) created from Camel Rest-DSL v1.0.0 - User API
      2023-07-24T11:02:20.505+02:00  INFO 452274 --- [           main] o.a.c.impl.engine.AbstractCamelContext   : Apache Camel 4.0.0.M3-redhat-00001 (MyCamel) is starting
      2023-07-24T11:02:20.513+02:00  INFO 452274 --- [           main] o.a.c.impl.engine.AbstractCamelContext   : Routes startup (started:5)
      2023-07-24T11:02:20.513+02:00  INFO 452274 --- [           main] o.a.c.impl.engine.AbstractCamelContext   :     Started route2 (direct://update-user)
      2023-07-24T11:02:20.513+02:00  INFO 452274 --- [           main] o.a.c.impl.engine.AbstractCamelContext   :     Started route1 (rest-api:///api-doc)
      2023-07-24T11:02:20.513+02:00  INFO 452274 --- [           main] o.a.c.impl.engine.AbstractCamelContext   :     Started route3 (rest://get:/users)
      2023-07-24T11:02:20.513+02:00  INFO 452274 --- [           main] o.a.c.impl.engine.AbstractCamelContext   :     Started route4 (rest://get:/users:/%7Bid%7D)
      2023-07-24T11:02:20.513+02:00  INFO 452274 --- [           main] o.a.c.impl.engine.AbstractCamelContext   :     Started route5 (rest://put:/users:/%7Bid%7D)
      2023-07-24T11:02:20.513+02:00  INFO 452274 --- [           main] o.a.c.impl.engine.AbstractCamelContext   : Apache Camel 4.0.0.M3-redhat-00001 (MyCamel) started in 7ms (build:0ms init:0ms start:7ms)
      2023-07-24T11:02:20.515+02:00  INFO 452274 --- [           main] o.a.c.example.springboot.Application     : Started Application in 1.19 seconds (process running for 1.328)
      

      however, the api doc can be accessed at http://localhost:8080/api/api-doc normally.

      per https://github.com/swagger-api/swagger-parser/issues/1899 it should be enough to bump the dependency version of swagger-parser-v3 to at least 2.1.13 (currently the example uses 2.1.10)

      When adding the 2.1.16 version to the dependency management for the example, it works ok:

      
        .   ____          _            __ _ _
       /\\ / ___'_ __ _ _(_)_ __  __ _ \ \ \ \
      ( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \
       \\/  ___)| |_)| | | | | || (_| |  ) ) ) )
        '  |____| .__|_| |_|_| |_\__, | / / / /
       =========|_|==============|___/=/_/_/_/
       :: Spring Boot ::                (v3.0.6)
      
      2023-07-24T11:05:58.120+02:00  INFO 461599 --- [           main] o.a.c.example.springboot.Application     : Starting Application using Java 17.0.5 with PID 461599 (/git/camel-spring-boot-examples/rest-openapi/target/classes started by avano in /git/camel-spring-boot-examples/rest-openapi)
      2023-07-24T11:05:58.122+02:00  INFO 461599 --- [           main] o.a.c.example.springboot.Application     : No active profile set, falling back to 1 default profile: "default"
      2023-07-24T11:05:58.527+02:00  WARN 461599 --- [           main] io.undertow.websockets.jsr               : UT026010: Buffer pool was not set on WebSocketDeploymentInfo, the default pool will be used
      2023-07-24T11:05:58.535+02:00  INFO 461599 --- [           main] io.undertow.servlet                      : Initializing Spring embedded WebApplicationContext
      2023-07-24T11:05:58.536+02:00  INFO 461599 --- [           main] w.s.c.ServletWebServerApplicationContext : Root WebApplicationContext: initialization completed in 391 ms
      2023-07-24T11:05:58.853+02:00  INFO 461599 --- [           main] o.a.c.c.s.CamelHttpTransportServlet      : Initialized CamelHttpTransportServlet[name=CamelServlet, contextPath=]
      2023-07-24T11:05:58.855+02:00  INFO 461599 --- [           main] io.undertow                              : starting server: Undertow - 2.3.5.Final-redhat-00001
      2023-07-24T11:05:58.859+02:00  INFO 461599 --- [           main] org.xnio                                 : XNIO version 3.8.8.Final
      2023-07-24T11:05:58.864+02:00  INFO 461599 --- [           main] org.xnio.nio                             : XNIO NIO Implementation Version 3.8.8.Final
      2023-07-24T11:05:58.895+02:00  INFO 461599 --- [           main] org.jboss.threads                        : JBoss Threads version 3.5.0.Final
      2023-07-24T11:05:58.913+02:00  INFO 461599 --- [           main] o.s.b.w.e.undertow.UndertowWebServer     : Undertow started on port(s) 8080 (http)
      2023-07-24T11:05:59.060+02:00  INFO 461599 --- [           main] o.a.c.s.o.OpenApiAutoConfiguration       : OpenAPI (3.0.2) created from Camel Rest-DSL v1.0.0 - User API
      2023-07-24T11:05:59.153+02:00  INFO 461599 --- [           main] o.a.c.impl.engine.AbstractCamelContext   : Apache Camel 4.0.0.M3-redhat-00001 (MyCamel) is starting
      2023-07-24T11:05:59.160+02:00  INFO 461599 --- [           main] o.a.c.impl.engine.AbstractCamelContext   : Routes startup (started:5)
      2023-07-24T11:05:59.160+02:00  INFO 461599 --- [           main] o.a.c.impl.engine.AbstractCamelContext   :     Started route2 (direct://update-user)
      2023-07-24T11:05:59.160+02:00  INFO 461599 --- [           main] o.a.c.impl.engine.AbstractCamelContext   :     Started route1 (rest-api:///api-doc)
      2023-07-24T11:05:59.160+02:00  INFO 461599 --- [           main] o.a.c.impl.engine.AbstractCamelContext   :     Started route3 (rest://get:/users)
      2023-07-24T11:05:59.160+02:00  INFO 461599 --- [           main] o.a.c.impl.engine.AbstractCamelContext   :     Started route4 (rest://get:/users:/%7Bid%7D)
      2023-07-24T11:05:59.160+02:00  INFO 461599 --- [           main] o.a.c.impl.engine.AbstractCamelContext   :     Started route5 (rest://put:/users:/%7Bid%7D)
      2023-07-24T11:05:59.161+02:00  INFO 461599 --- [           main] o.a.c.impl.engine.AbstractCamelContext   : Apache Camel 4.0.0.M3-redhat-00001 (MyCamel) started in 7ms (build:0ms init:0ms start:7ms)
      2023-07-24T11:05:59.162+02:00  INFO 461599 --- [           main] o.a.c.example.springboot.Application     : Started Application in 1.202 seconds (process running for 1.339)
      

              fmariani@redhat.com Federico Mariani
              avano@redhat.com Andrej Vano
              Votes:
              0 Vote for this issue
              Watchers:
              2 Start watching this issue

                Created:
                Updated:
                Resolved: