从 Camel Rest DSL 生成 OpenAPI 时出错

问题描述 投票:0回答:1

我们最近将 apache Camel 从 3.x 升级到 4.x。从那时起 swagger 就不再工作了。请参阅 swagger ui 的附图。

启动应用程序时,我们收到以下警告。

2024-01-11T13:17:36,363 WARN [main] o.a.c.s.s.SpringdocAutoConfiguration$1:从 Camel Rest DSL 生成 OpenAPI 时出错,原因是:无法调用“java.util.Map.clear()”,因为“io.swagger”的返回值.v3.oas.models.media.Schema.getExtensions()”为空。该异常被忽略。 java.lang.NullPointerException:无法调用“java.util.Map.clear()”,因为“io.swagger.v3.oas.models.media.Schema.getExtensions()”的返回值为空 在 org.apache.camel.openapi.OpenApiHelper.clearVendorExtensions(OpenApiHelper.java:59) ~[camel-openapi-java-4.0.2.jar:4.0.2] 在 org.apache.camel.springboot.springdoc.SpringdocAutoConfiguration.createOpenAPI(SpringdocAutoConfiguration.java:131) ~[camel-springdoc-starter-4.0.2.jar:4.0.2] 在 org.apache.camel.springboot.springdoc.SpringdocAutoConfiguration$1.beforeApplicationStart(SpringdocAutoConfiguration.java:81) [camel-springdoc-starter-4.0.2.jar:4.0.2] 在 org.apache.camel.spring.boot.CamelSpringBootApplicationListener.onApplicationEvent(CamelSpringBootApplicationListener.java:111) [camel-spring-boot-4.0.2.jar:4.0.2] 在 org.apache.camel.spring.boot.CamelSpringBootApplicationListener.onApplicationEvent(CamelSpringBootApplicationListener.java:59) [camel-spring-boot-4.0.2.jar:4.0.2]

application.properties 已暴露 url -

  1. app.context.profile.post=/v1/iwx/cj/gateway/profileattachments
  2. app.context.activity.post=/v1/iwx/cj/gateway/activity/status

我们在 pom.xml 中有以下骆驼依赖项

<dependency>
    <groupId>org.apache.camel.springboot</groupId>
    <artifactId>camel-spring-boot-starter</artifactId>
    <version>${camel.version}</version>
    <exclusions>
        <exclusion>
            <groupId>org.apache.logging.log4j</groupId>
            <artifactId>log4j-to-slf4j</artifactId>
        </exclusion>
    </exclusions>
</dependency>
<dependency>
    <groupId>org.apache.camel</groupId>
    <artifactId>camel-spring-rabbitmq</artifactId>
    <version>${camel.version}</version>
</dependency>

<dependency>
    <groupId>org.apache.camel</groupId>
    <artifactId>camel-test-junit5</artifactId>
    <version>${camel.version}</version>
    <scope>test</scope>
</dependency>
<dependency>
    <groupId>org.apache.camel.springboot</groupId>
    <artifactId>camel-servlet-starter</artifactId>
    <version>${camel.version}</version>
</dependency>

<dependency>
    <groupId>org.apache.camel.springboot</groupId>
    <artifactId>camel-jackson-starter</artifactId>
    <version>${camel.version}</version>
</dependency>

<!-- for Swagger-->
<dependency>
    <groupId>org.apache.camel.springboot</groupId>
    <artifactId>camel-springdoc-starter</artifactId>
    <version>${camel.version}</version>
</dependency>

<dependency>
    <groupId>org.apache.camel</groupId>
    <artifactId>camel-http</artifactId>
    <version>${camel.version}</version>
</dependency>

<dependency>
    <groupId>org.apache.camel.springboot</groupId>
    <artifactId>camel-cxf-soap-starter</artifactId>
    <version>4.0.2</version>
    <exclusions>
        <exclusion>
            <groupId>org.apache.cxf</groupId>
            <artifactId>cxf-core</artifactId>
        </exclusion>
    </exclusions>
</dependency>
<dependency>
    <groupId>org.apache.camel.springboot</groupId>
    <artifactId>camel-cxf-rest-starter</artifactId>
    <version>4.0.2</version>
    <exclusions>
        <exclusion>
            <groupId>org.apache.cxf</groupId>
            <artifactId>cxf-core</artifactId>
        </exclusion>
    </exclusions>
</dependency>

<dependency>
    <groupId>org.apache.cxf</groupId>
    <artifactId>cxf-core</artifactId>
    <version>4.0.2</version>
</dependency>

<dependency>
    <groupId>org.apache.cxf</groupId>
    <artifactId>cxf-codegen-plugin</artifactId>
    <version>${cxfcodegen.version}</version>
    <exclusions>
        <exclusion>
            <groupId>org.apache.commons</groupId>
            <artifactId>commons-compress</artifactId>
        </exclusion>
        <exclusion>
            <groupId>commons-io</groupId>
            <artifactId>commons-io</artifactId>
        </exclusion>
    </exclusions>
</dependency>

<dependency>
    <groupId>org.apache.camel.springboot</groupId>
    <artifactId>camel-resilience4j-starter</artifactId>
    <version>${camel.version}</version>
</dependency>


<dependency>
    <groupId>org.springdoc</groupId>
    <artifactId>springdoc-openapi-starter-webmvc-ui</artifactId>
    <version>2.3.0</version>
</dependency>
<dependency>
    <groupId>javax.servlet</groupId>
    <artifactId>javax.servlet-api</artifactId>
    <version>4.0.1</version>
</dependency>
<dependency>
    <groupId>org.springdoc</groupId>
    <artifactId>springdoc-openapi-ui</artifactId>
    <version>1.6.8</version>
</dependency>
<plugin>
    <groupId>org.apache.cxf</groupId>
    <artifactId>cxf-codegen-plugin</artifactId>
    <version>${cxfcodegen.version}</version>
    <executions>
        <execution>
            <id>generate-sources</id>
            <phase>generate-sources</phase>
            <configuration>
                <defaultOptions>
                    <autoNameResolution>true</autoNameResolution>
                </defaultOptions>
                <wsdlOptions>
                    <wsdlOption>
                        <wsdl>src/main/resources/wsdl/TransactionLookupService.wsdl</wsdl>
                    </wsdlOption>
                    <wsdlOption>
                        <wsdl>src/main/resources/wsdl/CTMService.wsdl</wsdl>
                    </wsdlOption>
                </wsdlOptions>
            </configuration>
            <goals>
                <goal>wsdl2java</goal>
            </goals>
        </execution>
    </executions>
</plugin>
spring-boot apache-camel openapi swagger-ui springdoc-openapi-ui
1个回答
0
投票

好的,我可以看到错误在哪里,并为下一个 Camel 版本创建了一个票证和修复程序 https://issues.apache.org/jira/browse/CAMEL-20342

© www.soinside.com 2019 - 2024. All rights reserved.