jackson2.9.9的@JsonProperty无法与swagger2.9.2配合使用

时间:2019-08-06 09:49:08

标签: java spring-boot jackson swagger swagger-ui

我最近开始用版本Swagger实现2.9.2。在没有其他项目的Jackson的情况下,它可以很好地工作,但是当我添加具有Jackson依赖性的相同代码时,由于无法将其(XML字符串)隐藏到Json对象中,因此集成测试开始失败。

尝试了Jackso n个数据格式和版本的不同版本。

我的DTO课程:

@Data
@AllArgsConstructor
@NoArgsConstructor
@Wither
public class PartsInfoDTO {
    // TODO: 08/10/18 This class should be removed after lexcom start giving remark_line instead of RemarkLine for ex.
    @JsonProperty("illustration")
    private String Illustration;
    @JsonProperty("quantity")
    private String Quantity;
    @JsonProperty("price")
    private Price Price;
    @JsonProperty("remark_line")
    private String remarkLine;
    @JsonProperty("part_number")
    @ApiModelProperty(name = "part_number")
    private String partNumber;
    @JsonProperty("denomination_line")
    private String[] denominationLine;

    public PartsInfoDTO(PartsInfo partsInfo) {
        setDenominationLine(partsInfo.getDenominationLine());
        setIllustration(partsInfo.getIllustration());
        setPartNumber(partsInfo.getPartNumber());
        setPrice(partsInfo.getPrice());
        setQuantity(partsInfo.getQuantity());
        setRemarkLine(partsInfo.getRemarkLine());
    }

}

我的Swagger配置:

@Configuration
@EnableSwagger2
public class PartsSwaggerConfiguration extends WebMvcConfigurationSupport {


    @Bean
    public Docket api() {
        return new Docket(DocumentationType.SWAGGER_2)
                .select()
                .apis(RequestHandlerSelectors.basePackage("com.package.example"))
                .paths(regex(PART_INFO_API))
                .build();
    }
}

stacktrace错误:

  

com.fasterxml.jackson.core.JsonParseException:意外字符   (“ <”(代码60)):预期的有效值(数字,字符串,数组,   对象,[来源:'true','false'或'null')   (字符串)“ 1121-123453   1INR2ASWS03G102354Drucr“;   行:1,列:2]

     在

  com.fasterxml.jackson.core.JsonParser._constructError(JsonParser.java:1804)     在   com.fasterxml.jackson.core.base.ParserMinimalBase._reportError(ParserMinimalBase.java:669)     在   com.fasterxml.jackson.core.base.ParserMinimalBase._reportUnexpectedChar(ParserMinimalBase.java:567)     在   com.fasterxml.jackson.core.json.ReaderBasedJsonParser._handleOddValue(ReaderBasedJsonParser.java:1894)     在   com.fasterxml.jackson.core.json.ReaderBasedJsonParser.nextToken(ReaderBasedJsonParser.java:749)     在   com.fasterxml.jackson.databind.ObjectMapper._initForReading(ObjectMapper.java:4141)     在   com.fasterxml.jackson.databind.ObjectMapper._readMapAndClose(ObjectMapper.java:4000)     在   com.fasterxml.jackson.databind.ObjectMapper.readValue(ObjectMapper.java:3004)     在   com.vwits.asid.etka.PartInfoControllerTest.getPartInfo(PartInfoControllerTest.java:347)     在sun.reflect.NativeMethodAccessorImpl.invoke0(本机方法)处   sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)     在   sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)     在java.lang.reflect.Method.invoke(Method.java:498)在   org.junit.runners.model.FrameworkMethod $ 1.runReflectiveCall(FrameworkMethod.java:50)     在   org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)     在   org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:47)     在   org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17)     在   org.springframework.test.context.junit4.statements.RunBeforeTestExecutionCallbacks.evaluate(RunBeforeTestExecutionCallbacks.java:74)     在   org.springframework.test.context.junit4.statements.RunAfterTestExecutionCallbacks.evaluate(RunAfterTestExecutionCallbacks.java:84)     在   org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:26)     在   org.springframework.test.context.junit4.statements.RunBeforeTestMethodCallbacks.evaluate(RunBeforeTestMethodCallbacks.java:75)     在   org.springframework.test.context.junit4.statements.RunAfterTestMethodCallbacks.evaluate(RunAfterTestMethodCallbacks.java:86)     在   com.github.tomakehurst.wiremock.junit.WireMockClassRule $ 1.evaluate(WireMockClassRule.java:60)     在org.junit.rules.RunRules.evaluate(RunRules.java:20)处   org.springframework.test.context.junit4.statements.SpringRepeat.evaluate(SpringRepeat.java:84)     在org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:325)处   org.springframework.test.context.junit4.SpringJUnit4ClassRunner.runChild(SpringJUnit4ClassRunner.java:251)     在   org.springframework.test.context.junit4.SpringJUnit4ClassRunner.runChild(SpringJUnit4ClassRunner.java:97)     在org.junit.runners.ParentRunner处$ 3.run(ParentRunner.java:290)在   org.junit.runners.ParentRunner $ 1.schedule(ParentRunner.java:71)在   org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288)在   org.junit.runners.ParentRunner.access $ 000(ParentRunner.java:58)在   org.junit.runners.ParentRunner $ 2.evaluate(ParentRunner.java:268)在   org.springframework.test.context.junit4.statements.RunBeforeTestClassCallbacks.evaluate(RunBeforeTestClassCallbacks.java:61)     在   org.springframework.test.context.junit4.statements.RunAfterTestClassCallbacks.evaluate(RunAfterTestClassCallbacks.java:70)     在   com.github.tomakehurst.wiremock.junit.WireMockClassRule $ 1.evaluate(WireMockClassRule.java:70)     在org.junit.rules.RunRules.evaluate(RunRules.java:20)处   org.junit.runners.ParentRunner.run(ParentRunner.java:363)在   org.springframework.test.context.junit4.SpringJUnit4ClassRunner.run(SpringJUnit4ClassRunner.java:190)     在org.junit.runner.JUnitCore.run(JUnitCore.java:137)处   com.intellij.junit4.JUnit4IdeaTestRunner.startRunnerWithArgs(JUnit4IdeaTestRunner.java:68)     在   com.intellij.rt.execution.junit.IdeaTestRunner $ Repeater.startRunnerWithArgs(IdeaTestRunner.java:47)     在   com.intellij.rt.execution.junit.JUnitStarter.prepareStreamsAndStart(JUnitStarter.java:242)     在   com.intellij.rt.execution.junit.JUnitStarter.main(JUnitStarter.java:70)

0 个答案:

没有答案