首页 > 解决方案 > Swagger CodeGen swagger-codegen-cli-3.0.25.jar| 问题:无法加载名称为 jaxrs-jersey 的配置类

问题描述

我正在尝试使用 ProcessBuilder 通过 swagger-codegen-cli-3.0.25.jar 从 java 代码中生成 Swagger Stub。输入是 OAS 3.0.0 有效的 YAML。

我有以下代码:

String javaBin = javaHome + File.separator + "bin" + File.separator + "java";
List<String> command = new ArrayList<>();
command.add(javaBin);
command.add("-jar");
command.add(System.getProperty("user.dir")+"//lib//swagger-codegen-cli-3.0.25.jar");
command.add("generate");
command.add("-l jaxrs-jersey");
command.add("-i " + oasYAML.getAbsolutePath());
command.add("-o D:\\EmailStatement\\swaggercode");

相同的 CLI 命令在 CMD 中运行良好,但在 java 代码中出现以下错误:

Exception in thread "main" java.lang.RuntimeException: Can't load config class with name jaxrs-jersey Available: dart
aspnetcore
csharp
csharp-dotnet2
go
go-server
dynamic-html
html
html2
java
jaxrs-cxf-client
jaxrs-cxf
inflector
jaxrs-cxf-cdi
jaxrs-spec
jaxrs-jersey
jaxrs-di
jaxrs-resteasy-eap
jaxrs-resteasy
micronaut
spring
nodejs-server
openapi
openapi-yaml
kotlin-client
kotlin-server
php
python
python-flask
r
ruby
scala
scala-akka-http-server
swift3
swift4
swift5
typescript-angular
typescript-axios
typescript-fetch
javascript

at io.swagger.codegen.v3.CodegenConfigLoader.forName(CodegenConfigLoader.java:31)
at io.swagger.codegen.v3.cli.SwaggerCodegen.main(SwaggerCodegen.java:96)
Caused by: java.lang.ClassNotFoundException: jaxrs-jersey
at java.net.URLClassLoader.findClass(URLClassLoader.java:382)
at java.lang.ClassLoader.loadClass(ClassLoader.java:418)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:355)
at java.lang.ClassLoader.loadClass(ClassLoader.java:351)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:264)
at io.swagger.codegen.v3.CodegenConfigLoader.forName(CodegenConfigLoader.java:29)

标签: javajerseyswaggerswagger-codegen

解决方案


推荐阅读