0

我已经在 spring 中连接了 swagger-springmvc,并且在提供一些 api 路径的描述时它似乎可以正常工作。然而,当访问更复杂的对象时,它会提供错误的 xml。这会在 chrome 中生成以下消息:

This page contains the following errors:

error on line 1 at column 3963: StartTag: invalid element name
Below is a rendering of the page up to the first error.

我注意到可以在 xml 中找到这样的标签

<entry>
  <key>questions</key>
  <value>
    <items>
      <$ref>Question</$ref>
      <required>false</required>
      <type>any</type>
      <uniqueItems>false</uniqueItems>
    </items>
    <name>questions</name>
    <required>false</required>
    <type>Set</type>
    <uniqueItems>false</uniqueItems>
  </value>
</entry>

我尝试删除保存 xml 信息并从 ref 条目中删除美元符号,这似乎使 xml 正确。有没有其他人有这个问题的经验?

仔细观察会发现,在转换 List Type 对象时会出现问题。我仍然没有解决办法。

4

1 回答 1

1

我能够通过更改 swagger 0.6.5 使用的 Jackson 依赖项来解决这个问题。更改是在 pom.xml 中进行的。

排除了我在依赖树中找到的 swagger 的 jackson 依赖项

    <dependency>
      <groupId>com.mangofactory</groupId>
      <artifactId>swagger-springmvc</artifactId>
      <version>0.6.5</version>
      <exclusions>
        <exclusion>
          <groupId>com.fasterxml.jackson.jaxrs</groupId>
          <artifactId>jackson-jaxrs-json-provider</artifactId>
        </exclusion>
        <exclusion>
          <groupId>com.fasterxml.jackson.module</groupId>
          <artifactId>jackson-module-scala</artifactId>
        </exclusion>
        <exclusion>
          <groupId>com.fasterxml</groupId>
          <artifactId>classmate</artifactId>
        </exclusion>
      </exclusions>
    </dependency>

为三个 jackson 依赖项添加了新的依赖项

    <dependency>
      <groupId>com.fasterxml.jackson.jaxrs</groupId>
      <artifactId>jackson-jaxrs-json-provider</artifactId>
      <version>2.2.3</version>
    </dependency>
    <dependency>
      <groupId>com.fasterxml</groupId>
      <artifactId>classmate</artifactId>
      <version>1.0.0</version>
    </dependency>
    <dependency>
      <groupId>com.fasterxml.jackson.module</groupId>
      <artifactId>jackson-module-scala_2.9.2</artifactId>
      <version>2.2.3</version>
    </dependency>
于 2013-10-31T10:59:51.840 回答