light-4j: light-codegen не может сгенерировать проект - PullRequest
0 голосов
/ 20 ноября 2018

Я пытался сгенерировать проект из примера питомника openapi.json. Я использовал light-codegen для генерации конечных точек и модели.

Я установил light-codegen:

git clone https://github.com/networknt/light-codegen.git
cd light-codegen
mvn clean install

Затем я запускаю codegen из папки моего проекта:

java -jar ../../networknt/light-codegen/codegen-cli/target/codegen-cli.jar -f openapi -o /tmp/petstore -m openapi.json -c config.json

Я вижу следующую ошибку в выводе:

openapi openapi.json config.json /tmp/petstore
19:16:00.766 [main] INFO com.networknt.config.Config - daily config cache refresh
19:16:00.772 [main] INFO com.networknt.config.Config - Unable to load config from externalized folder for service.yml in 
19:16:00.772 [main] INFO com.networknt.config.Config - Trying to load config from classpath directory for file service.yml
19:16:00.774 [main] INFO com.networknt.config.Config - Config loaded from default folder for service.yml
19:16:04.799 [main] INFO com.fizzed.rocker.runtime.RockerRuntime - Rocker version 0.22.0
19:16:04.801 [main] INFO com.fizzed.rocker.runtime.RockerRuntime - Rocker template reloading not activated
java.nio.file.NoSuchFileException: /tmp/petstore/src/test/resources/config/client.keystore
    at sun.nio.fs.UnixException.translateToIOException(UnixException.java:86)
    at sun.nio.fs.UnixException.rethrowAsIOException(UnixException.java:102)
    at sun.nio.fs.UnixException.rethrowAsIOException(UnixException.java:107)
    at sun.nio.fs.UnixFileSystemProvider.newByteChannel(UnixFileSystemProvider.java:214)
    at java.nio.file.spi.FileSystemProvider.newOutputStream(FileSystemProvider.java:434)
    at java.nio.file.Files.newOutputStream(Files.java:216)
    at java.nio.file.Files.copy(Files.java:3016)
    at com.networknt.codegen.rest.OpenApiGenerator.generate(OpenApiGenerator.java:367)
    at com.networknt.codegen.Cli.run(Cli.java:98)
    at com.networknt.codegen.Cli.main(Cli.java:50)

Нужно ли как-то предоставлять client.keystore?

config.json

{
  "name": "petstore",
  "version": "3.0.1",
  "groupId": "com.networknt",
  "artifactId": "petstore",
  "rootPackage": "com.networknt.petstore",
  "handlerPackage":"com.networknt.petstore.handler",
  "modelPackage":"com.networknt.petstore.model",
  "overwriteHandler": true,
  "overwriteHandlerTest": true,
  "overwriteModel": true,
  "httpPort": 8080,
  "enableHttp": false,
  "httpsPort": 8443,
  "enableHttps": true,
  "enableHttp2": true,
  "enableRegistry": false,
  "supportDb": false,
  "supportH2ForTest": false,
  "supportClient": false,
  "specChangeCodeReGenOnly": true,
  "dockerOrganization": "networknt"
}

openapi.json: https://github.com/networknt/light-example-4j/blob/master/rest/perstore-with-codegen/petstore-spec/config/openapi.json

1 Ответ

0 голосов
/ 20 ноября 2018

В конфигурации supportClient установлен как false.В этом случае нет необходимости создавать client.keystore для генерации.Я предполагаю, что это проблема с каталогом.

Если вы хотите сгенерировать проект petstore в openapi, то лучший способ - запустить генератор из вашего рабочего пространства, используя light-codegen и model-config в качестве подпапок вЭто. java -jar light-codegen/codegen-cli/target/codegen-cli.jar -f openapi -o /tmp/petstore -m model-config/rest/openapi/petstore/1.0.0/openapi.json -c model-config/rest/openapi/petstore/1.0.0/config.json Конфигурация в light-example-4j / rest / petstore-with-maven / petstore-spec / config предназначена не для генерации кода из командной строки, а из плагина maven.

Если вы хотите сгенерировать код из этой папки, вот командная строка.

java -jar light-codegen/codegen-cli/target/codegen-cli.jar -f openapi -o /tmp/petstore -m light-example-4j/rest/perstore-with-codegen/petstore-spec/config/openapi.yaml -c light-example-4j/rest/perstore-with-codegen/petstore-spec/config/config.json Я попробовал обе команды, и они все отлично работают на моем рабочем столе.Дайте мне знать ваши шаги подробно, чтобы я мог повторить проблему.Благодарю.

...