1

我的应用程序在 Java8 Spring MVC 上,我正在将其迁移到 Java11 Spring Boot 应用程序。

我使用 Jaxb 从.xsd文件中生成的类用于输入 JSON 请求的模型类,其中传入有效负载之一是snake_case基于的,并且生成的类位于camelCase. 其他端点在 CamelCase 或 PascalCase 中工作正常。

在旧版本中,输入有效负载用于映射到模型类,但在 Spring Boot 中,我发现 snake_case 一的有效负载属性为空。

总而言之,event_name变成eventName在 java 类中并且不选取值是event_name有效负载中的属性。

<?xml version="1.0" encoding="UTF-8"?>
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" attributeFormDefault="unqualified">
   ...
   ...
   <xsd:element name="sampleClassName">
        <xsd:complexType>
            <xsd:sequence>
                ...
                <xsd:element name="event_name" type="xsd:string" minOccurs="1"></xsd:element>
                ...
            </xsd:sequence>
        </xsd:complexType>
    </xsd:element>
   ...
</xsd:schema>

自动生成的类得到以下注解:

@XmlElement(name = "event_name", required = true)
protected String eventName;

我在 gradle 中的依赖项:

compile "com.fasterxml.jackson.core:jackson-databind:2.8.9"
xjc "com.sun.xml.bind:jaxb-impl:2.2.6"
xjc "com.sun.xml.bind:jaxb-xjc:2.2.6"
compile "javax.xml.bind:jaxb-api:2.2.6"

请提出可能出了什么问题。我参考了其他帖子并尝试了以下依赖项,但没有运气。

compile "com.fasterxml.jackson.module:jackson-module-jaxb-annotations:2.9.4"
compile "com.fasterxml.jackson.jaxrs:jackson-jaxrs-json-provider:2.9.4"
compile "com.fasterxml.jackson.core:jackson-core:2.11.4"
compile "com.fasterxml.jackson.core:jackson-annotations:2.9.4"
compile "com.fasterxml.jackson.core:jackson-databind:2.11.4"
compile(group: 'com.fasterxml.jackson.dataformat', name: 'jackson-dataformat-xml', version: '2.6.3', classifier: 'javadoc')
4

0 回答 0