首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >生成swagger java客户端代码时出错

生成swagger java客户端代码时出错
EN

Stack Overflow用户
提问于 2018-11-12 03:12:54
回答 2查看 2.2K关注 0票数 2

我试图使用以下命令生成java客户端代码

代码语言:javascript
复制
java -jar swagger-codegen-cli-3.0.2.jar generate -v  \
        -i swagger.json \
        -l java

但是我得到了以下错误

代码语言:javascript
复制
java.util.NoSuchElementException: No value present
    at java.util.Optional.get(Optional.java:135)
    at io.swagger.codegen.v3.generators.DefaultCodegenConfig.configureDataForTestTemplate(DefaultCodegenConfig.java:3766)
    at io.swagger.codegen.v3.generators.DefaultCodegenConfig.fromOperation(DefaultCodegenConfig.java:2107)
    at io.swagger.codegen.v3.generators.java.AbstractJavaCodegen.fromOperation(AbstractJavaCodegen.java:1089)
    at io.swagger.codegen.v3.DefaultGenerator.processOperation(DefaultGenerator.java:847)
    at io.swagger.codegen.v3.DefaultGenerator.processPaths(DefaultGenerator.java:771)
    at io.swagger.codegen.v3.DefaultGenerator.generateApis(DefaultGenerator.java:419)
    at io.swagger.codegen.v3.DefaultGenerator.generate(DefaultGenerator.java:722)
    at io.swagger.codegen.v3.cli.cmd.Generate.run(Generate.java:342)
    at java.lang.Thread.run(Thread.java:748)
Exception in thread "Thread-1" java.lang.RuntimeException: Could not process operation:
    Tag: class Tag {
    name: DIMSE-RS
    description: Invoke DIMSE Service on remote AE
    externalDocs: null
    }
Operation: SearchForStudySeriesInstancesExternal
Resource: get /aets/{aet}/dimse/{externalAET}/studies/{StudyInstanceUID}/series/{SeriesInstanceUID}/instances
Exception: No value present
    at io.swagger.codegen.v3.DefaultGenerator.processOperation(DefaultGenerator.java:872)
    at io.swagger.codegen.v3.DefaultGenerator.processPaths(DefaultGenerator.java:771)
    at io.swagger.codegen.v3.DefaultGenerator.generateApis(DefaultGenerator.java:419)
    at io.swagger.codegen.v3.DefaultGenerator.generate(DefaultGenerator.java:722)
    at io.swagger.codegen.v3.cli.cmd.Generate.run(Generate.java:342)
    at java.lang.Thread.run(Thread.java:748)
Caused by: java.util.NoSuchElementException: No value present
    at java.util.Optional.get(Optional.java:135)
    at io.swagger.codegen.v3.generators.DefaultCodegenConfig.configureDataForTestTemplate(DefaultCodegenConfig.java:3766)
    at io.swagger.codegen.v3.generators.DefaultCodegenConfig.fromOperation(DefaultCodegenConfig.java:2107)
    at io.swagger.codegen.v3.generators.java.AbstractJavaCodegen.fromOperation(AbstractJavaCodegen.java:1089)
    at io.swagger.codegen.v3.DefaultGenerator.processOperation(DefaultGenerator.java:847)
    ... 5 more

有关swagger.json文件的下一节

代码语言:javascript
复制
"/aets/{aet}/dimse/{externalAET}/studies/{StudyInstanceUID}/series/{SeriesInstanceUID}/instances": {
  "get": {
    "tags": [
      "DIMSE-RS"
    ],
    "summary": "Search for Instances of Series of Study external",
    "operationId": "SearchForStudySeriesInstancesExternal",
    "produces": [
      "application/dicom+json",
      "application/json"
    ],
    "parameters": [
      {
        "name": "aet",
        "in": "path",
        "description": "Archive AE Title used as Calling AET for querying for Instances",
        "required": true,
        "type": "string"
      },
      {
        "name": "externalAET",
        "in": "path",
        "description": "AE Title of C-FIND SCP to query for Instances",
        "required": true,
        "type": "string"
      },
      {
        "name": "SeriesInstanceUID",
        "in": "path",
        "description": "Series Instance UID for a single Series",
        "required": true,
        "type": "string"
      },
      {
        "name": "priority",
        "in": "query",
        "description": "requested priority: 0=NORMAL, 1=HIGH, 2=LOW",
        "type": "integer",
        "enum": [ 0, 1, 2 ],
        "default": 0
      },
      {
        "name": "{attributeID}",
        "in": "query",
        "description": "{attributeID}={value}; {attributeID} = {dicomTag} | {dicomKeyword} | {dicomTag}.{attributeID} | {dicomKeyword}.{attributeID}",
        "type": "array",
        "items": {
          "type": "string"
        },
        "collectionFormat": "multi"
      },
      {
        "name": "fuzzymatching",
        "in": "query",
        "description": "fuzzy semantic matching of person names",
        "type": "boolean",
        "default": false
      },
      {
        "name": "offset",
        "in": "query",
        "description": "offset={skippedResults}",
        "type": "integer",
        "default": 0
      },
      {
        "name": "limit",
        "in": "query",
        "description": "limit={maximumResults}",
        "type": "integer"
      }
    ],
    "responses": {
      "200": {
        "description": "successful operation",
        "schema": {
          "type": "file"
        }
      },
      "204": {
        "description": "no matching instances found"
      },
      "404": {
        "description": "External AE Title not found"
      },
      "default": {
        "description": "unexpected error"
      }
    }
  }
},

这里有完整的swagger文件。

https://github.com/dcm4che/dcm4chee-arc-light/blob/master/dcm4chee-arc-ui2/src/swagger/swagger.json

或者在这里

http://petstore.swagger.io/index.html?url=https://raw.githubusercontent.com/dcm4che/dcm4chee-arc-light/master/dcm4chee-arc-ui2/src/swagger/swagger-dicom.json

知道有什么问题吗?

EN

回答 2

Stack Overflow用户

发布于 2018-11-12 08:58:55

我修正了swagger文件中的几个错误:

  1. 参数集合中未列出的路径参数(这是造成上述问题的根本原因)
  2. 具有无效名称的参数(包含!(这不会在生成时导致错误,但会导致编译错误)。
票数 4
EN

Stack Overflow用户

发布于 2022-07-03 13:43:03

正如@helen建议的那样,我将我的swagger文件内容粘贴到editor.swagger.io上,并修复了上面提到的语法错误。那么它就成功了。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53255507

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档