我已经在春天连接了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正确。是否有其他人已经解决了这个问题?
仔细观察会发现,在转换列表类型对象时会出现问题。我仍然无法解决该怎么做。
答案 0 :(得分:1)
我能够通过改变摇摆0.6.5使用的杰克逊依赖来解决这个问题。这些更改是在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>