簡単な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;
}
}
メソッドが起動し、ブラウザに次のように表示されます。
コンソールにはこれ以上何もありません。何か案は?
編集: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(){
}
}
フィールドレベルではなくクラスレベルとしてLombokを使用する必要があると思います。
@Entity
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class Employee implements Serializable {}
これで問題が解決する場合があります。
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>