小编rim*_*sky的帖子

Java文件:prolog中不允许的内容

我是Spring的新手并开始使用Sprint工具套件(eclipse)并在我的maven项目中的java文件中看到此错误:"prolog中不允许使用内容".这可以防止类在eclipse中编译(这只是一个最小的SpringBootApplication类).

package com.test;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@SpringBootApplication
public class Application {

    public static void main(String[] args) {
        SpringApplication.run(Application.class, args);
    }
}
Run Code Online (Sandbox Code Playgroud)

我已经浏览了网页,并且几乎在每个引用中都看到了这一点,这是一个XML解析错误.我一直在更新三个XML文件,但<?xml在十六进制编辑器之前没有看到任何不可见的字符.它们都指定使用UTF-8编码,我没有看到交替的0字节表示意外的UTF-16编码.行结尾似乎是一致的(只是一个换行符).

有趣的是,它使用"maven clean install"在没有编译器错误的情况下构建.我也没有在java文件中看到任何特殊字符,但是eclipse告诉我文件是问题,而且这是一个spring bean问题.错误消息显示在第一行的package语句中.

任何想法根本问题是什么或如何解决这个问题?

更新 根据要求,这是我的pom.xml文件:

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <groupId>org.springframework</groupId>
    <artifactId>gs-rest-service</artifactId>
    <version>0.1.0</version>

    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>1.2.5.RELEASE</version>
    </parent>

    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        <dependency>
            <groupId>org.mybatis</groupId>
            <artifactId>mybatis</artifactId>
            <version>3.2.8</version>
        </dependency>
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
        </dependency>
    </dependencies>

    <properties>
        <java.version>1.8</java.version>
    </properties>


    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
       <resources>
         <resource>
           <targetPath>com/test/mybatis/mappers</targetPath>
           <directory>src/main/java/com/test/mybatis/mappers</directory>
           <includes>
             <include>*.xml</include> …
Run Code Online (Sandbox Code Playgroud)

java xml eclipse spring maven

8
推荐指数
1
解决办法
9144
查看次数

使用 lombok 自定义序列化和反序列化字段名称

有没有办法指定不同的序列化/反序列化 JSON 字段名称,而不必显式写出 getter 和 setter 方法,也许使用 lombok getter 和 setter?

与此示例类似,以下代码允许将传入的 JSON 反序列化为不同的 POJO 字段名称。它还导致 POJO 字段名称按原样序列化:

public class PrivacySettings {
    private String chiefDataOfficerName;

    @JsonProperty("CDO_Name__c")
    private void setChiefDataOfficerName(String chiefDataOfficerName) {
        this.chiefDataOfficerName = chiefDataOfficerName;
    }

    @JsonProperty("chiefDataOfficerName")
    private String getChiefDataOfficerName() {
        return chiefDataOfficerName;
    }
}
Run Code Online (Sandbox Code Playgroud)

这看起来很冗长,但我无法让它与 @Getter 和 @Setter 一起使用。我确实看到 Jackson 支持 @JsonAlias,这在这个特定示例中可能会有所帮助,但我还需要使用不同的名称进行序列化。

看起来这应该很简单,比如:

@Getter
@Setter
public class PrivacySettings {
    @JsonSetter("CDO_Name__c")    
    @JsonGetter("chiefDataOfficerName")    
    private String chiefDataOfficerName;
}    
Run Code Online (Sandbox Code Playgroud)

但这当然是无效的。

json jackson lombok

4
推荐指数
1
解决办法
2953
查看次数

标签 统计

eclipse ×1

jackson ×1

java ×1

json ×1

lombok ×1

maven ×1

spring ×1

xml ×1