Open Api Generator supportJava6=true-客户端不在java 6上工作

Open Api Generator supportJava6=true-客户端不在java 6上工作,java,openapi,java-6,openapi-generator,Java,Openapi,Java 6,Openapi Generator,早上好 我正试图用开放式API在Java中生成一个API客户机。不幸的是,它需要使用Java6。我启用了该标志,并且在Java 11上运行的开发环境(Eclipse)中,一切都可以正常工作,符合Java 6的要求。当我导出JAR并尝试在JRE 1.6的登台环境中运行它时,我得到了错误ClassDefNotFound-okhttp3/Interceptor。如果我尝试从Maven下载此依赖项,则会得到不支持的major.minor版本52.0 因此,我想知道supportJava6标志是否真的做了

早上好

我正试图用开放式API在Java中生成一个API客户机。不幸的是,它需要使用Java6。我启用了该标志,并且在Java 11上运行的开发环境(Eclipse)中,一切都可以正常工作,符合Java 6的要求。当我导出JAR并尝试在JRE 1.6的登台环境中运行它时,我得到了错误
ClassDefNotFound-okhttp3/Interceptor
。如果我尝试从Maven下载此依赖项,则会得到
不支持的major.minor版本52.0

因此,我想知道supportJava6标志是否真的做了什么,因为它似乎至少需要Java8

我做错什么了吗

致意

更新

API规范:

API使用客户端ID和密码进行授权。我已经为授权制作了一个小的库,它与Java6一起工作,因此auth正在工作并完成

API通常在运行时不起作用(它通过一些快速修复进行编译)

我使用了Swagger和OpenAPI,在docker中本地运行

注意:我多次更改这些文件,我不记得我尝试过的所有组合和配置。我知道我试过了在StackOverflow发布的所有东西,甚至更多,但都没有效果。我在这里已经有一个月了,只要有时间,我就会尝试一切。

以下是我尝试过的最新配置:

OpenAPI:

version: "3.6"
  services:
    openapi-codegen-cli:
      image: openapitools/openapi-generator-cli:v4.3.1
      volumes:
      - '.:/local'
      command: generate -g jaxrs-spec -i local/in/api.yml -o /local/out/jaxrs-client --additional-properties=dataLibrary=threetenbp,java8=false --skip-validate-spec

volumes:
 openapi_data:
昂首阔步:

swagger-codegen-cli:
   image: swaggerapi/swagger-codegen-cli
   volumes:
   - '.:/local'
   command: generate -l java -i local/json/api.json -c local/config/config.json -o /local/out/java-client

// config.json

{
  supportJava6: true,
}
生成代码后,我通常必须修复
pom.xml
,添加
标记。然后,我使用
mvn clean install
构建项目。编译完成后,我通常会在运行时收到一些错误,关于不支持的major.minor版本


我也试过这样做:

您应该使用okhttp的1.x版。仔细阅读位于的更改日志。首先尝试使用1.1.1版


您可以从maven repository下载jar,网址为

,您应该使用okhttp的1.x版。仔细阅读位于的更改日志。首先尝试使用1.1.1版


您可以从maven repository的

下载jar。当Java6是一个目标约束时,用完整的REST堆栈扩展一个旧项目并不明显

我建议尝试替代OpenAPI生成器,或者希望使用最新的Java 6兼容版本或您可能发现的任何其他Java 6 JAX-RS实现更容易配置Maven项目

根据文档,您必须注意选项
dataLibrary=threetenbp
java8=false
,这些选项在版本4.3.1中应该可以使用(版本5.x中已经放弃了对Java 6的支持)


我建议按照演示项目提供的本教程进行操作:

当Java 6是目标约束时,使用完整的REST堆栈扩展旧项目并不明显

我建议尝试替代OpenAPI生成器,或者希望使用最新的Java 6兼容版本或您可能发现的任何其他Java 6 JAX-RS实现更容易配置Maven项目

根据文档,您必须注意选项
dataLibrary=threetenbp
java8=false
,这些选项在版本4.3.1中应该可以使用(版本5.x中已经放弃了对Java 6的支持)


我建议按照演示项目提供的本教程进行操作:

只有Java客户端生成器中的
jersey1
库支持
supportJava6
选项。以下是一个例子:

npm install -g @openapitools/openapi-generator-cli
openapi-generator-cli generate \
   -i https://raw.githubusercontent.com/openapitools/openapi-generator/master/modules/openapi-generator/src/test/resources/3_0/petstore.yaml \
   -g java \
   --library jersey1 \
   --additional-properties supportJava6=true \
   -o /var/tmp/java_api_client

仅供参考。
supportJava6
选项已被弃用,并将在即将发布的5.x版OpenAPI Generator中删除只有Java客户端生成器中的
jersey1
库支持
supportJava6
选项。以下是一个例子:

npm install -g @openapitools/openapi-generator-cli
openapi-generator-cli generate \
   -i https://raw.githubusercontent.com/openapitools/openapi-generator/master/modules/openapi-generator/src/test/resources/3_0/petstore.yaml \
   -g java \
   --library jersey1 \
   --additional-properties supportJava6=true \
   -o /var/tmp/java_api_client

仅供参考。
supportJava6
选项已被弃用,并将在即将发布的5.x版OpenAPI Generator中被删除

现在很难找到任何与Java 6兼容的选项。首先是因为从一两年前开始,
Java5
就不能在最近的Windows下运行了(我的意思是:Java5的
Java.exe
),Java6也面临被拒绝的危险。它有太多的漏洞,其中包括:10或15的严重性10对10。。。我完全同意你的观点,但我是从2005年开始独自一人在做一个项目,这个项目只需要运行一年左右,他们不在乎。因此,我将花费数月的时间在这个混乱的项目上添加特性和修复东西,只需要几个月的使用lol。现在真的很难找到与Java 6兼容的东西了。首先是因为从一两年前开始,
Java5
就不能在最近的Windows下运行了(我的意思是:Java5的
Java.exe
),Java6也面临被拒绝的危险。它有太多的漏洞,其中包括:10或15的严重性10对10。。。我完全同意你的观点,但我是从2005年开始独自一人在做一个项目,这个项目只需要运行一年左右,他们不在乎。所以我会浪费几个月的时间在这个乱七八糟的项目上添加功能和修复东西,只需要几个月的时间,哈哈,我会努力的,谢谢。但我想知道,如果我标记了supportJava6,为什么客户端是用okhttp3创建的?我也不认为这会这么简单。我可以编辑pom.xml并下载较旧版本的http,但随后需要手动更改项目中的所有导入。我很确定v1.1.1和v3.1之间的区别是巨大的。肯定会有东西刹车的。但话说回来,如果我不得不手动执行此操作,并浪费数小时使其在Java6上运行,那么supportJava6=true标志的意义何在?MHM当检查支持Java6的标志时,编译器生成的字节码符合Java6。使用okhttp3的库是编译库