web-dev-qa-db-ja.com

Spring RESTコントローラは空のデータを含むJSONを返します

簡単なSpring Boot Webアプリケーションがあります。サーバーからデータを受信しようとしています。コントローラーはコレクションを返しますが、ブラウザーは空のJSONを受け取ります-中括弧の数はサーバーからのオブジェクトの数と同じですが、その内容は空です。

@RestController
public class EmployeeController {

@Autowired
private EmployeeManagerImpl employeeManagerImpl;

    @RequestMapping(path="/employees", method = RequestMethod.GET)
    public Iterable<Employee> getAllEmployees() {
        Iterable<Employee> employeesIterable = employeeManagerImpl.getAllEmployees();
        return employeesIterable;
    }
}

メソッドが起動し、ブラウザに次のように表示されます。

enter image description here

コンソールにはこれ以上何もありません。何か案は?

編集:Employee.Java

@Entity
public class Employee implements Serializable{

    private static final long serialVersionUID = -1723798766434132067L;

    @Id
    @Getter @Setter 
    @GeneratedValue
    private Long id;

    @Getter @Setter
    @Column(name = "first_name")
    private String firstName;

    @Getter @Setter
    @Column(name = "last_name")
    private String lastName;

    @Getter @Setter
    private BigDecimal salary;

    public Employee(){

    }
}
13
Radziasss

フィールドレベルではなくクラスレベルとしてLombokを使用する必要があると思います。

@Entity
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor    
public class Employee implements Serializable {}

これで問題が解決する場合があります。

7
Pedro Tavares

JavaオブジェクトをJSONに変換するプロジェクト内のコンバーターがあります。そうでない場合はオンにする必要があります。プロジェクトでJacksonを使用してみてください。

Jackson jarがプロジェクトにインポートされると、ディスパッチャーサーブレットは以下のようになります。

    <beans:bean class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter">
        <beans:property name="messageConverters">
            <beans:list>
                <beans:ref bean="jsonMessageConverter" />
            </beans:list>
        </beans:property>
    </beans:bean>

    <!-- Configure bean to convert JSON to POJO and vice versa -->
    <beans:bean id="jsonMessageConverter"
        class="org.springframework.http.converter.json.MappingJackson2HttpMessageConverter">
    </beans:bean>
0
HARDI